我可以让浏览器忽略(CORS)规则吗?

时间:2016-05-01 14:32:58

标签: javascript ajax browser cors

我想在我的localhost上存在一个简单的javascript脚本,用ajax与另一个域(例如:anotherdomain.com)建立连接并获取响应,但是我的所有浏览器都告诉我错误(连接被阻止,原因: CORS标题' Access-Control-Allow-Origin'缺失)

但是当我用网络监控程序(fiddler)检查网络流量时,我看到响应已经来自(anotherdomain.com)服务器到我的本地机器,它只是我的浏览器阻止我接受它!

1 - 我可以命令浏览器使用javascript代码忽略CORS规则吗?

2 - 我有什么方法可以解决这个问题?用c#构建自定义客户端disktop应用程序来自由发送和接收请求是最好的方法吗?

3 - 是用于保护Web客户端或Web服务器的CORS策略吗?

谢谢,请考虑我在网上完成新手

1 个答案:

答案 0 :(得分:1)

  

但是当我用网络监控程序(fiddler)检查网络流量时,我看到响应已经来自(anotherdomain.com)服务器到我的本地机器,只是我的浏览器阻止了我得到它!!

当然,已建立连接以检查您提到的标头是否存在,但数据不太可能被转移。

关于你的问题,

  1. 实际上有两个选项。一种是根据您的原因设置具有适当来源的Access-Control-Allow-Origin标头。第二种是进行JSONP调用,尽管服务器的响应必须支持这样的解决方案。

  2. 最好的选择是让服务器指定上面的标头。您的服务器将处理其所有网络内容,您的脚本只会获取/发送一些响应/请求。

  3. 我想说它设计的更多是为了保护服务器。想象一下以下情况。您站点上的脚本会向另一个站点发出大量POST请求。提交表格等行为可能会发生并且将被允许。这有害,对吧?您可以阅读in this stack question.