2

単純な POST リクエストを作成しようとしていますが、まだ成功していません。

ヘッダーの変更

エンコーディング: UTF-8 HTTP メソッド: POST コンテンツ タイプ: application/x-www-form-urlencoded;charset=UTF-8

HTTP メソッド: OPTIONS コンテンツ タイプ:

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拡張機能は、2つの異なる方法でクロスドメインリクエストをサポートします。

ドメインをmanifest.jsonに含める-ドメインがmanifest.jsonファイルの"permissions"セクションに含まれている場合、 Chrome拡張機能は任意のドメインに対してクロスドメインリクエストを行うことができます: "permissions":["http://*.html5rocks。 com "]リクエストを成功させるために、サーバーに追加のCORSヘッダーを含めたり、それ以上の作業を行ったりする必要はありません。

CORSリクエスト-ドメインがmanifest.jsonファイルにない場合、Chrome拡張機能は標準のCORSリクエストを作成します。Originヘッダーの値は「chrome-extension://[CHROMEEXTENSIONID]」です。つまり、Chrome拡張機能からのリクエストには、この記事で説明されているのと同じCORSルールが適用されます。

于 2012-07-11T16:23:01.653 に答える