CORS 和修改响应头

Posted

技术标签:

【中文标题】CORS 和修改响应头【英文标题】:CORS and modifying the response header 【发布时间】:2016-08-04 01:46:28 【问题描述】:

我了解站点 A 要向站点 B 发出请求,站点 B 必须在其标头响应中指定站点 A 允许由 Access-Control-Allow-Origin: http://siteA.com 访问 this 网站还声明

启用跨域请求很简单,所以请,请,请 如果您的数据是公开的,请启用 CORS!

这对我来说很有意义。

我的问题是,即使我的站点 B 没有为站点 A 指定 Access-Control-Allow-Origin 标头,我仍然可以通过使用 Chrome 插件或禁用网络安全性来通过站点 A 上的客户端 JS 访问数据。这没有意义。 客户端如何修改服务器响应头,站点A仍然可以通过JS访问数据?

顺便说一句,在这种情况下,站点 A 是 localhost:9000,如果这很重要的话。

【问题讨论】:

浏览器负责同源策略。如果您禁用网络安全,您只需告诉您的浏览器忽略它。没有修改响应标头。 我真的不明白你的问题。如果您禁用网络安全或使用 Chrome 扩展程序,则与使用 curl 发出请求相同——没有同源策略。 【参考方案1】:

客户端如何修改服务器响应头,站点A仍然可以通过JS访问数据

嗯,它不能。问题是服务器只回复 CORS 标头,如何解释它是浏览器的责任。例如,您仍然可以通过curl 从 Internet 上的任何网站检索数据。 CORS 标头只是一个约定。

【讨论】:

以上是关于CORS 和修改响应头的主要内容,如果未能解决你的问题,请参考以下文章

.netcore响应头设置为utf-8

没有响应头 Access-Control-Allow-Origin 时允许 CORS

自定义响应头 AngularJS 的访问控制公开头配置

Apache Windows配置-----跨域CORS设置-----HTTP响应头设置-------dplayer调用apache服务时的header filed range报错解决

Apache Windows配置-----跨域CORS设置-----HTTP响应头设置-------dplayer调用apache服务时的header filed range报错解决

django-cors-headers