最近在做一款授权系统的时候遇到了跨域的问题,所以决定写一篇文章来讲一讲PHP解决跨域的方法。
作为一名PHP程序员,在做前后端分离时可能会用一个网站去请求另一个网站的资源,那么这时候就会遇到一个问题--跨域。
什么是跨域
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
浏览器从一个域名的网页去请求另一个域名的资源时,出现域名、端口、协议任一不同,都属于跨域。
简单来说就是AJAX 请求发送后,结果被浏览器给拦截了
怎么解决
这里解决跨域的办法其实是比较多的,我就只介绍在PHP文件头部设置header来解决。
举个例子:如果A网站要请求B网站的资源,那么我们需要在B网站相应的PHP文件里面根据自己的需求加入下面的代码。
允许单个域名访问
header('Access-Control-Allow-Origin:https://www.bcdog.cn');
不限制域名
header('Access-Control-Allow-Origin:*');
这个是不安全的,建议限制一个域名可以访问。
设置请求方式
header('Access-Control-Allow-Methods:POST');//表示只允许POST请求
把POST改为*就是允许所有的请求方式。
请求头限制
header('Access-Control-Allow-Headers:x-requested-with, content-type');
© 版权声明
如果没有特殊说明,文章版权归编程狗所有,转载请注明出处。
THE END
暂无评论内容