生ajaxリクエスト時にxhrが現れる.status==0およびPOSTリクエストに応答なし

1756 ワード

元のajaxリクエストでxhrを発見する.status==0で、長い間探していたが、バインドイベントの要素が私がクリックした要素ではないことに気づいた.以下のリソースを参照
AJAX問題のXMLHttpRequest status=0
xhr.statusステータスコード
  1、If the state is UNSENT or OPENED, return 0.(状態がUNSENTまたはOPENEDの場合は0を返す)2、If the error flag is set,return 0.(エラーラベルが設定場合は0)3、Return the HTTP status codeを返す.(HTTPステータスコードを返す)
 
POSTリクエストに応答なし
POST要求関数は以下の通りである.
function post(url, data){
	var req = createXMLHTTPRequest();
	if(req){
		//post         ,     
		req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                req.open("POST", url, true);
		//    
		req.onreadystatechange = function(){
			//         
			if(req.readyState == 4 && req.status == 200)
				requestSuccess();
		}
		req.send(data);
	}
}

req.setRequestHeader("Content-type","application/x-www-form-urlencoded");コメントを削除すると逆に要求できますが、この文を追加してはいけません.ラベルはこのリクエストヘッダを適用しないのでcontent-typeのこのタイプと説明を調べました:HTTPのアプリケーション/x-www-form-urlencoded文字の説明はまだ問題を解決できませんでした。そこで私はネット上のPOSTリクエストをよく照らして、先にopenを開いてからsetRequestHeaderを置くべきだと発見しました。だと思います.
req.open("POST", url, true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");

 
参照先:
原生jsのajaxリクエスト:最初に見たのですが、中のPOSTリクエストヘッダとopen()の位置が逆になっていることに気づきました
原生ajaxとjQuery ajaxの比較
AJAXの簡単な使い方
ajax servletが送信したデータを取得
原生js実現Ajax
生Ajaxで書く
HTTPにおけるアプリケーション/x-www-form-urlencoded文字説明
 
エラーの概要:
1.getとpostがservletにコミットするのはそれぞれgetとpostで処理され、servletのgetメソッドかpostメソッドが設定されていないかどうかを確認します.
2.イベントをクリックし、クリックイベントをバインドする要素にステップ対応するか
3.POSTシーケンスの設定に問題があるかどうか、オープン()してからメッセージヘッダを設定する