0

Web サーバーに (GET ではなく) POST を送信するように JavaScript をコーディングしているときに、XMLHttp.onreadystatechange を定義する必要があるかどうか疑問に思いました。これまでの私のコードは次のようになります。

XMLHttp.onreadystatechange = function(){};
XMLHttp.open("POST", "http://something.com/receiver.php", true);
XMLHttp.setRequestHeader("Content-type", "text/plain");
XMLHttp.send("blabla");

POST が成功したときに何もする必要がないため、機能をトリガーする必要がないからです。

質問 1: コードをできるだけ短くしたいのですが、onreadystatechange = null を設定することを考えました。これが (すべてのブラウザーで) 機能するかどうかは誰にもわかりませんか?

質問 2: onreadystatechange を完全に未定義のままにしておくのは安全ではないと思います... 一部のシステムでは事前定義された値を持っている可能性があります... 誰かこれについて知っていますか?

みんなありがとう!

4

3 に答える 3

1

実際には、nullに設定する代わりに、onreadystatechangeそれを除外するだけで、何も起こりません。

于 2012-09-02T12:18:01.233 に答える
0

私はあなたが何を求めたかはわかりませんが、postリクエストを送信して結果を無視するだけでよいので、非常に便利なjQuery関数を使用することをお勧めします。それはあなたのためにすべてのXMLHTTPのことを処理します:

$.post("test.php", { name: "John", time: "2pm" } );

送信するURLとデータで構成されます。

ここにさらなる参照があります:http://api.jquery.com/jQuery.post/

投稿先の別のドメインの場合は、リクエストでjsonpを有効にするだけです。

于 2012-09-02T12:11:21.513 に答える
0

リクエストが終了したかどうかを知る必要があります。その後、XHR ステータスをポーリングする必要があります。

リクエストが途中で失敗する可能性があるため (特に宛先に到達しない場合はわかりません。タイムアウトした場合は失敗です)。

当初の計画がリクエストを送信するだけで、それを忘れる場合を除きます。その場合は必要ありませんonreadystatechange

false編集: または、その非同期プロパティに使用できます。その後XMLHttpRequest.send()、ステータスを取得するまで戻りません。

参照: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest

于 2012-09-02T11:56:36.477 に答える