跨域:是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
如果两个 URL 的?protocol、port?(en-US)?(如果有指定的话)和?host?都相同的话,则这两个 URL 是同源。
下表给出了与 URL http://store.company.com/dir/page.html 的源进行对比的示例:
URL 结果 原因
http://store.company.com/dir2/other.html 同源 只有路径不同
http://store.company.com/dir/inner/another.html 同源 只有路径不同
https://store.company.com/secure.html 失败 协议不同
http://store.company.com:81/dir/etc.html 失败 端口不同 ( http:// 默认端口是80)
http://news.company.com/dir/other.html 失败 主机不同
解释同源,跨域以及相关方案
解决方案:
在入口文件加
header('Access-Control-Allow-Origin:*'); // 响应类型 header('Access-Control-Allow-Methods:*'); // 响应头设置 header('Access-Control-Allow-Headers:content-type,token,id'); header("Access-Control-Request-Headers: Origin, X-Requested-With, content-Type, Accept, Authorization"); 都能解决,要是不行试试下面
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){ ? ? header("Access-Control-Allow-Origin: *"); ? ? header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization"); ? ? header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH'); ? ? file_put_contents('option.txt',json_encode($_REQUEST)); ? ? exit; }
header('Access-Control-Allow-Origin:*'); // 响应类型 header('Access-Control-Allow-Methods:*'); // 响应头设置 header('Access-Control-Allow-Headers:content-type,token,id'); header("Access-Control-Request-Headers: Origin, X-Requested-With, content-Type, Accept, Authorization"); ?
|