关于ajax访问跨域问题
记得以前在项目中使用ajax遇到跨域问题,
一开始不知道ajax不能进行跨域请求接口,一直没有打开F12查看,就是返回不到数据,还以为自己的方法写错了,后来打开F12才知道是ajax不能进行跨域!
现在知道了问题,所以要找到解决方法!
在网上百度了各种方法:
第一种是在你访问的php文件中添加如下:
这种允许所有的网址访问:
header('Access-Control-Allow-Origin:*');
这种是允许你指定的网址进行访问:
header('Access-Control-Allow-Origin:http://www.XXX.com');
《这种方法虽然没有在项目中使用,但是在测试的时候是可以的》
第二种是你使用jsonp访问你的接口方法:
$.ajax({
dataType:
"jsonp"
,//jsonp的形式访问
jsonp:
"callback"
,//回调方法
})
php文件中返回数据的时候例如:
echo $_POST['callback']."(".json_encode($data).")";
这里使用你传过来的回调函数是防止你数据最后的分号被json解析,导致数据错误
第二中方法是我在项目中使用的,可以达到自己的接口跨域访问解析,
简单解析 希望可以记录自己成长的脚步。