1

拡張機能で使用されている Web ワーカーから POST メソッドで非同期リクエストを作成しようとしています。問題は、それが私にはうまくいかないということです。サーバー側では、$_POST 変数のデータをリッスンする PHP スクリプトがあります。サーバーへの接続を確立し、URL (GET) でデータを渡すこともできますが、$_POST は常に空です。

Web ワーカーで使用している最新のコードは次のとおりです。

var serviceUrl = "http://localhost/pfm/service/index.php";
var invocation = new XMLHttpRequest();
if(invocation){
    invocation.open('POST', serviceUrl, true);
    invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
    invocation.setRequestHeader('Content-Type', 'text/plain');
    invocation.onreadystatechange = function(){processResponse(invocation);};
    invocation.send("action=init");
}

(問題が同じオリジン ポリシーであると考えたときに、MDN Web サイトから借用)

これに先立って、私はかなり明白で途方もなく単純なものを使用していました:

var serviceUrl = "http://localhost/pfm/service/index.php";
var xhr = new XMLHttpRequest();
xhr.open("POST", serviceUrl, true);
xhr.onreadystatechange = function(){processResponse(receiptStoreRequest);};
xhr.send("action=init");

この場合、リクエストもパスしましたが、$_POST はまだ空でした。

POST リクエストが Web ワーカーで許可されていない可能性はありますか?

現在、すべてが localhost でテストされています。

4

1 に答える 1

0

コンテンツ タイプは設定しませんtext/plainが、

invocation.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Firefox 4+ 向けに開発している場合は、FormData オブジェクトにも興味があるかもしれません

于 2010-08-28T02:34:09.147 に答える