ajax跨域问题(php)

ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”。

解决方法(我只用过下面这3种):
1. 架设服务器代理:即浏览器请求同源服务器,再由后者请求外部服务(之前博主一直用这种方法,其实感觉这种算不上跨域请求了)。
2. 就是使用jsonp方式(博主用的不多)
3.就是通过设置header头部信息来实现(本章主要讲这个,实现很简单)

    就是在你要请求的地址中添加  header('Access-Control-Allow-Origin:*'); 设置你允许访问的域名就可以了
    
    看一下下面的例子:
        比如 你的要通过 http://a.com/a.js  来访问 http://b.com/b.php   实现跨域, 那么你就要在 b.php中实现(博主用的tp框架)
            
            <?php

            namespace Tw\Controller;

            use Think\Controller;


            class MarketdataController extends BaseController
            {
                public function gethq()
                {
                    $data = ['message' => '请输入code'];

                    header('Access-Control-Allow-Origin:http://a.com');

                    $this->ajaxReturn($data);
                }
            }

就可以了。(有的可能还需要配置一下服务器设置,我用的集成环境,只加这个就可以了)

Access-Control-Allow-Origin:* 表示允许任何域名跨域访问
'Access-Control-Allow-Origin:http://a.com 表示允许http://a.com跨域访问

posted @ 2018-03-27 16:07  三土胖  阅读(136)  评论(0)    收藏  举报