4

ajaxxmlhttprequestpostメソッドを使用していくつかのhtmlデータをphpスクリプトに送信しようとしています。しかし、何らかの理由でXHR POST REQUESTが切断され、すべてのデータがdoit.phpスクリプトに転送されるわけではありません。ただし、textareaフォームからの同じhtmlデータは、通常のフォームpostメソッドを介してdoit.phpスクリプトに正しく渡されます。この問題を克服し、xhrリクエストを介してこのhtmlデータを渡すことができるように手助けしていただけませんか?

    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("POST","http://www.mysite.com/doit.php?Name=test&Id=12345",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("outputtext="+siteContents);
4

2 に答える 2

4

また、 siteContents文字列をencodeURIComponent()する必要があると思います。

xmlhttp.send("outputtext=" + encodeURIComponent(siteContents));

これは、POST変数がアンパサンド(&)で区切られているためです。問題はおそらく、文字列にアンパサンドが含まれていることです。これは、新しいPOST変数の始まりとして解釈されます。

受信したすべてのPOST変数をPHPスクリプトで出力すると、これを簡単に確認できます。

var_dump($_POST);
于 2013-02-03T21:36:30.617 に答える
0

URLに疑問符と名前/値のペアがあるため、これは私にはGETリクエストのように見えます。

http://www.mysite.com/doit.php?Name=test&Id=12345

AJAXを使用してPOSTリクエストを作成する方法は次のとおりです。

http://www.javascriptkit.com/dhtmltutors/ajaxgetpost2.shtml

于 2013-02-03T21:03:02.223 に答える