2017-03-08 23 views
1

XMLHttpRequestで送信されたパラメータを確認することに興味があります。XMLHttpRequestレスポンスからparamsを取得する方法はありますか?

たとえば、param 'option = 1'を指定してPOST請願書を送信した場合、レスポンスから取得できますか?

メソッドとプロパティーを確認しましたが、取得する方法がありませんでした。

+0

いいえ、応答は応答であり、要求ではありません。あなたは送信したパラメータを自明に覚えて、レスポンスと共にチェッカーに渡すことができます。 – Bergi

+0

あなたはより多くのコンテキストを提供する必要があります:XMLHttpRequestはクライアント側であり、サーバ側で要求を受け取るためには何を使用しますか?ちなみに、レスポンスではなくリクエストからパラメータをチェックする必要があります。 – Mosd

+0

要点は、変数に格納することなく、要求で送信されたパラメータを取得することでした。 とにかく返信いただきありがとうございます。 – Vers

答えて

0

Bergiはそれがなかったパラメータを取得することはできません言ったように応答の要求とと​​もに送信されます。だから私は質問を閉じる。

お手数をおかけしていただきありがとうございます。

0

XMLHTTPRequestを送信し、ブラウザのJSコンソール(F12 for Chrome/Firefox)で応答オブジェクトを調べます。

私はデータがそこにないと信じていますが、少なくとも私は一度プロジェクトのXMLHttpRequestopen()メソッドを変更しました(もちろん、私はそれを見つけるにはあまりにも愚かかもしれません)。こうすることで、私のデフォルトのエラーハンドラは、ユーザにエラーを出力したり、エラーをバックエンドに報告するエラーを送信したりする際の元のURLを知ることができます。

ラフコードスニペットは、プロジェクトのinit-コードから引っ張っ:

/** 
* Check XMLHttpRequest availability 
*/ 
var ajax = null; 
var proto = null; 
if (window.XMLHttpRequest) { 
    ajax = new XMLHttpRequest(); 
    proto = XMLHttpRequest.prototype; 
} else if (window.ActiveXObject) { 
    try { 
     ajax = new ActiveXObject("Msxml2.XMLHTTP.6.0"); 
     proto = ActiveXObject("Msxml2.XMLHTTP.6.0").prototype; 
    } catch (e) { } 
}  

if (ajax == null) { 
    alert ("Can not create AJAX object. You need a more recent browser!"); 
    return; 
}  

/** 
* Update ajax prototype to store the URL (for better error handling) 
*/ 
try { 
    var origOpen = proto.open; 
    proto.open = function (method, url) { 
     this._url = url; 
     return origOpen.apply (this, arguments); 
    }  
} catch (e) { 
    console.log ("Can not patch XMLHttpRequest to store URL. Console output will omit them..."); 
} 

あなたが代わりにsend()関数に渡されるPOSTデータのためにこれを適応させる必要があります。 このメソッドはおそらく悪いスタイルであり、私のJSスタイルはさらに悪いことに注意してください!

良い:しかし、あなたはいつものXMLHttpRequestオブジェクトに格納することなく、コールバック関数に直接POSTデータを渡すことができます。

var postData = "SomeStuff-Foobar123"; 
var ajax = new XMLHttpRequest(); //add magic for other browsers here 
ajax.open ("POST", "ajax.php", true); 
ajax.onreadystatechange = function() { 
    if (this.readyState != 4 || this.status != 200) { 
     console.log ("Not ready, yet..."); 
     return 0; 
    } 
    //response is in this.responseText 
    //but you can still access the parent objects! 
    console.log ("Done with Code 200. POSTed data: " + postData); 
} 
ajax.send (postData); 
関連する問題