2

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

标题从

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

Http 方法:选项内容类型:

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

但是Firefox 扩展应用程序 RESTClient和一个类似的 Chrome 应用程序可以使用 XMLHttpRequest 访问,它们不会导致预检。如何以及为什么?

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

任何帮助表示赞赏

埃迪。

4

1 回答 1

0

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

来自 Chrome 扩展的跨域

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

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

CORS request - If the domain is not in the manifest.json file, then the Chrome extension makes a standard CORS request. The value of the Origin header is "chrome-extension://[CHROME EXTENSION ID]". This means requests from Chrome extensions are subject to the same CORS rules described in this article.

于 2012-07-11T16:23:01.653 回答