【问题标题】:How does Firefox extension app RESTClient avoid CORS?Firefox 扩展应用 RESTClient 如何避免 CORS?
【发布时间】:2012-07-08 00:40:13
【问题描述】:

我正在尝试发出一个简单的 POST 请求,但仍然没有成功。

标题从

编码:UTF-8 Http 方法:POST 内容类型: 应用程序/x-www-form-urlencoded;charset=UTF-8

Http 方法:选项 内容类型:

我了解当我尝试使用 Google Closure XhrIo 访问我的服务器时,它会导致预检并导致我的 POST 请求失败。

但是Firefox extension app RESTClient 以及类似的 Chrome 应用程序可以使用 XMLHttpRequest 访问,并且它们不会导致预检。如何以及为什么?

PS:我不是 JS 专业人士,我无法理解这段代码 http://code.google.com/p/restclient/source/browse/extension/chrome/content/restclient.js 的复杂性。

任何帮助表示赞赏

埃迪。

【问题讨论】:

  • 感谢 Thrustmaster。 +1 为您在另一篇文章中的回答。这回答了我的问题和沮丧:)
  • 很高兴这个答案对您有所帮助。 :)

标签: javascript jquery xmlhttprequest google-closure


【解决方案1】:

HTML5Rocks.com找到这条有价值的信息

来自 Chrome 扩展的跨域

Chrome 扩展以两种不同的方式支持跨域请求:

在 manifest.json 中包含域 - Chrome 扩展程序可以向任何域发出跨域请求如果该域包含在 manifest.json 文件的“权限”部分中: "permissions": ["http://*.html5rocks.com"] 服务器不需要包含任何额外的 CORS 标头或做任何其他工作以使请求成功。

CORS 请求 - 如果域不在 manifest.json 文件中,则 Chrome 扩展程序会发出标准的 CORS 请求。 Origin 标头的值为“chrome-extension://[CHROME EXTENSION ID]”。这意味着来自 Chrome 扩展程序的请求受本文所述的相同 CORS 规则的约束。

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2014-02-25
    • 2011-10-04
    • 2023-03-07
    • 2015-03-11
    • 2016-11-13
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多