0

jqueryなどのフレームワークを使わず、jsのスクリプトハックアップでクロスドメインリクエストを行いたいです。JSON をクロス ドメイン サービスに投稿し、コールバックを使用して結果を取得したいと考えています。プレーンなjavascriptで可能ですか?

4

3 に答える 3

0

フレームワークがそれを行うので、あなたもできます。他の人が書いたコードは、あなたが書いたコードではできないことをすることはできません (必要なことをすべて学ぼうとする限り)。

別のオリジンにポスト リクエストを作成する場合は (独自のサーバーを介してリクエストをプロキシしていないと仮定して)、CORSを使用する必要があります(ただし、ブラウザのサポートに注意してください.

(とにかく、「プレーンな JavaScript」の価値を得るには、コア言語の一部ではないブラウザーによって提供される API が必要です。)

于 2012-06-20T09:18:51.197 に答える
0

私は今日、この同じ問題に取り組んでおり、CORS に関するいくつかの優れたチュートリアルに出くわしました。

http://www.html5rocks.com/en/tutorials/cors/

http://websitez.com/javascript-cross-domain-post-get/

基本的に、javascript が XMLHttpRequest リクエスト (この例では POST を想定しています) を送信しようとすると、クロスドメインは最初に POST リクエストで送信したいメソッドとヘッダーを含む OPTIONS リクエストを送信します。リモート ドメインは適切なヘッダーで応答し、クライアントに要求を受け入れることを伝えます。これは「プリフライト」リクエストと呼ばれます。POST 要求で同じ応答ヘッダーを返す必要があることを覚えておいてください。そうしないと、200 応答コードが返されますが、コードはそれをエラーとして表示します。

于 2012-06-20T19:01:40.480 に答える
0

このようなものを使用できます。

var url = "http://sitename.com";
var params = "params1=value&params2=value2";
var httpc = new XMLHttpRequest();
httpc.open("POST", url, true);
httpc.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpc.onreadystatechange = function() {
    if(httpc.readyState == 4 && httpc.status == 200) {
            var responseType = httpc.getAllResponseHeaders();
            if(responseType.indexOf("application/json") != -1) {
                alert(httpc.responseText);
            }
    }
}
httpc.send(params);
于 2012-06-20T09:26:10.883 に答える