access-control-allow-origin到底是服务端起作用还是浏览器端?

假如服务端某个接口设置access-control-allow-origin

某个浏览器从不允许的域名调用该接口

那么有两种结果

1 服务端该接口是直接报错返回

2 服务端该接口正常执行完毕,只是在response中包含Access-Control-Allow-Origin字段,然后返回给浏览器,而浏览器检查响应如果包含Access-Control-Allow-Origin字段,就拒绝进一步动作

是1正确还是2?

阅读 2.1k
1 个回答

这几个头是为了解决同源策略中的 AJAX 跨域问题。

而“同源策略”,是浏览器作出的限制。

所以你觉得呢?


第 2 种说法前半部分倒是大概对,后半部分不对啊。前半部分首先后端不是正常处理,而是浏览器先发起一个 OPTIONS 请求来询问可不可以跨域 AJAX;后半部分是浏览器要检查的是发起请求的页面 Origin 和 Access-Control-Allow-Origin 匹不匹配啊,不匹配才拒绝,匹配了就可以正常发起 AJAX 请求了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题