假如服务端某个接口设置access-control-allow-origin
某个浏览器从不允许的域名调用该接口
那么有两种结果
1 服务端该接口是直接报错返回
2 服务端该接口正常执行完毕,只是在response中包含Access-Control-Allow-Origin字段,然后返回给浏览器,而浏览器检查响应如果包含Access-Control-Allow-Origin字段,就拒绝进一步动作
是1正确还是2?
假如服务端某个接口设置access-control-allow-origin
某个浏览器从不允许的域名调用该接口
那么有两种结果
1 服务端该接口是直接报错返回
2 服务端该接口正常执行完毕,只是在response中包含Access-Control-Allow-Origin字段,然后返回给浏览器,而浏览器检查响应如果包含Access-Control-Allow-Origin字段,就拒绝进一步动作
是1正确还是2?
15 回答8.1k 阅读
8 回答5.9k 阅读
3 回答2.3k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
这几个头是为了解决同源策略中的 AJAX 跨域问题。
而“同源策略”,是浏览器作出的限制。
所以你觉得呢?
第 2 种说法前半部分倒是大概对,后半部分不对啊。前半部分首先后端不是正常处理,而是浏览器先发起一个 OPTIONS 请求来询问可不可以跨域 AJAX;后半部分是浏览器要检查的是发起请求的页面 Origin 和
Access-Control-Allow-Origin
匹不匹配啊,不匹配才拒绝,匹配了就可以正常发起 AJAX 请求了。