Appearance
CORS 跨域资源共享
同源策略
因为安全问题,浏览器规定:只有在 协议、域名、端口号 一模一样的情况下,才可以通过 AJAX 发送请求。
那为什么 form
没有跨域问题?
因为用 form
发请求会刷新或离开当前页面,且用 form
提交到另一个域名之后,原页面的脚本无法获取新页面中的内容。
所以浏览器认为这是安全的。
实际上用 <a>
、<img>
、<link>
、<script>
这些标签都可以发起请求,且都没有同源策略的限制。
而 AJAX 是可以直接读取响应内容的,因此浏览器不允许这样做。
CORS
全称 Cross-Origin Resource Sharing
虽然浏览器制定了同源策源,但是我们可以通过 CORS 来突破它,即跨域。
在服务器的响应中添加:
javascript
response.setHeader('Access-Control-Allow-Origin', 'http://xxx')
// 或者
response.setHeader('Access-Control-Allow-Origin', '*')