2017-03-31 10 views
0

で受信されませんでしたか?この問題で私を助けてくれるのではないかと思いましたか?JavaScript Ajax URL 'post'データがPHPファイル

JavaScript AJAXメソッドで、可変長のHTML(または実際のデータ)をPOST経由でPHPファイルに渡すことを検討しています。

私は自分のプロジェクト全体にJavaScriptを使用したいので、私は自分の歯を切ることができます - 私はAJAXのjQueryで多くのソリューションが提供されていますが、うまくいけば、 :)

私は次のようにURLに変数を「準備」でデータを渡す:

ajax("doit.php?preparedOutput=" + prepare); 

AJAX機能:

function ajax(queryURL) { 
alert(queryURL); // check the right data is being sent 
var xhttp = new XMLHttpRequest(); 

xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     alert(xhttp.responseText); 
     output2.value = xhttp.responseText; 
     result.innerHTML = "<h3>your HTML</h3>" + xhttp.responseText; 
    } 
} 
//var encodedQueryURL = encodeURIComponent(queryURL); 
xhttp.open("POST", "doit.php", true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//alert(encodedQueryURL); // check the right encoded data is being sent 
xhttp.send(queryURL); 
} 

はアラートがおそらく送信されているもののデータを見せてエンコードされているか否かにかかわらず、すべてはうまく見えます。しかし、私がPHPから返す応答は何もありません。

<?php 
$preparedOutput = $_POST['preparedOutput']; 

echo $preparedOutput; 
?> 

if/elseブロックでisset($ preparedOutput)を使用しても、elseがトリガーされます。何も通過していない。たとえHTML以外の単純な数字や文字を空白なしで渡そうとしても。明らかにPHPファイルに到達するものはありません。

私はsetRequestHeaderを試しています。あらゆる種類の "text/html"などを試しています。結果は変わりません。私はここにパズルの重要な部分が欠けていると感じる!

私の環境では、FastCGIを使用してIIS7でPHPを有効にしています。 PHPは動作していましたが、以前は同じページにPHPスクリプトが埋め込まれていましたが、preparedOutput変数のHTMLではなくページ全体のHTMLが返されていました。

ありがとうございます。

+0

http://stackoverflow.com/questions/9713058/send-post-data-using-xmlhttprequest –

答えて

1

これは、URL文字列を2倍にしたためです。見てみましょう:

ので、あなたは基本的にhttp://whatever/doit/?doit.php?preparedOutput=" + prepareのようなものを呼び出すあなたは

ajax("doit.php?preparedOutput=" + prepare); 

ことによってそれを呼び、あなたがオープンに使用するURLは"doit.php"

です。

変更するには:

ajax("preparedOutput=" + prepare); 
+0

あなたは魔法です!私はちょうど私の知恵の終わりであったように、YouTubeの "基本に戻る"ビデオを見始めた。あなたはスターです。 –

+0

これはちょっと誇張されています:Dあなたに役立つなら、答えを受け入れてください、ありがとう。 :) –

+1

ちょうど本当に幸せ:) –

関連する問題