1

データベース内のいくつかの値を更新するphpスクリプトへのajaxpost呼び出しを開始しようとしています。

私が抱えている問題は、POST値が私のphpスクリプトに表示されないか、少なくとも応答がないことです。

これが私のJavaScriptです:

<script type="text/javascript">
$("btnOpsb" ).onclick = pinOpsb;
function pinOpsb(){
var params = "wxdata = test";
var ajaxRequest;
try{ajaxRequest = new XMLHttpRequest();} catch (e){try{ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try{ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){alert("Error: Browser/Settings conflict");return false;}}}
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            alert(ajaxRequest.responseText);
        }
    }
    ajaxRequest.open("POST","wx2strip.php",true);
    ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    ajaxRequest.send("fname=Henry&lname=Ford");
}
</script>

私のwx2strip.phpでは、$ _ POSTに何かが含まれている場合に何かをエコーバックしようとしましたが、スクリプトの先頭に何かをエコーし​​て終了しても、作成したアラートに応答がありません。

getを使用してみましたが、応答が返されます。

助けていただければ幸いです、ありがとう。

4

2 に答える 2

2

次の2行を追加して、適切なヘッダーを設定します。

ajaxRequest.setRequestHeader("Content-length", "fname=Henry&lname=Ford".length);
ajaxRequest.setRequestHeader("Connection", "close");

POSTにはcontent-lengthが必要です。

于 2012-05-16T23:45:15.790 に答える
1

問題が発生している理由について、Aerikの答えは正しいと思います。

とは言うものの、あなたはすでにjavascriptでjQueryを使用しているので、jQueryの$.post()使用を検討すれば、物事をかなり単純化できると思います。それはあなたのためにこれらのタイプの合併症のすべてを処理するので、そのような他の小さな問題があったとしても、あなたは問題にぶつかることはありません。

于 2012-05-17T02:06:24.587 に答える