关于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解析,导致数据错误

第二中方法是我在项目中使用的,可以达到自己的接口跨域访问解析,

简单解析 希望可以记录自己成长的脚步。


原文地址:https://www.cnblogs.com/jhcyzxx/p/6639945.html