2017-12-15 5 views
2

上のPHPの$ _POSTの値を得ることができない私がこれを実行すると、私のindex.htmlをは、Ajaxリクエストここ

<script> 
    var xml = new XMLHttpRequest(); 
    xml.onreadystatechange = function(){ 
     if (xml.readyState === 4 && xml.status === 200) { 
      console.log(xml.responseText); 
     } 
    } 
    xml.open("POST", "ajax.php", true); 
    var data = new FormData(); 
    data.append("name","Sahan"); 
    xml.send(data); 
</script> 

そして、ここでは私の

ajax.php
<?php 
echo "Hello " . $_POST["name"]; 
?> 

です私のローカルホストの結果は


です。お知らせ:未定義のインデックス:名前Cで:\ xamppの\ htdocsに\ \ ajax.phpライン上
こんにちは

チャットしかし、私はそれが正しく動作しているjQueryのを使用しています...

私の質問は、JQueryを使わずにJavaScriptを使ってajaxを送信する方法です。

+2

ため

var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("POST", "ajax_test.php", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send("fname=Stack&lname=Overflow"); 

POST配列は、本当にあなたが –

+0

$ _POST配列 –

答えて

5

あなたは、あなたのjavascript関数でこのコードを使用することができます

<script> 
    var xml = new XMLHttpRequest(); 
    xml.onreadystatechange = function(){ 
     if (xml.readyState === 4 && xml.status === 200) { 
      console.log(xml.responseText); 
     } 
    } 
    xml.open("POST", "ajax.php", true); 
    //Send the proper header information along with the request 
    xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

    /*var data = new FormData(); 
    data.append("name","Stackoverflow");*/ 
    xml.send("name=Stackoverflow"); 
</script> 
+0

はいには価値がありません期待値が含まれているかどうかを確認するために開発ツールを見てください...... ...それは作品です.......しかし、私はxml.send( "名前=データ")に送信chaged。それを変更した後、あなたに感謝しました... –

+0

オンラインの例[ここ](https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects)ではこれをまったく言及していないようです。なぜこれが必要なのか? – apokryfos

+0

GETのリクエストヘッダは何ですか? –

2

あなたは、AJAXを使用するとき、ポストデータを要求とともに適切なヘッダ情報を渡す必要があります。詳細Ajax at w3schools

関連する問題