2015-02-07 42 views
0

發送數據我使用的是原生的JavaScript AJAX,但是當我在看什麼貼吧只是說[object Object]等試圖捕捉$_REQUEST['stringSent']在PHP文件不做任何與本地JavaScript AJAX

這裏就是我想,稱爲使用dataPost('test')

function dataPost(dataToSend) { 
    var params = { "stringSent": dataToSend }; 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status === 200) { 
     if (typeof success === "function") { 
     alert(xmlhttp.responseText); 
     success(xmlhttp.responseText); 
     } 
    }else if(typeof error === "function" && (xmlhttp.status > 299 || xmlhttp.status < 200)){ 
     error();  
    } 
    } 
    xmlhttp.open("POST", 'dataCapture.php', true); 
    xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); 
    //xmlhttp.send(JSON.stringify(data)); // not needed as I'm sending JSON anyway 
    xmlhttp.send(params); 
} 

有沒有更好的方法來做到這一點?

回答

1

評論這條線:

// xmlhttp.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); 

或將其更改爲:

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xmlhttp.send('stringSent=' + dataToSend); 
+0

他們爲什麼要這樣做? – Musa 2015-02-07 19:06:08

-2

使用jQuery阿賈克斯。

$.ajax({ 
url: 'dataCapture.php', 
dataType: 'text', 
type: 'post', 
contentType: 'application/x-www-form-urlencoded', 
data: params , 
success: function(data, textStatus, jQxhr){ $('#response pre').html(data ); }, 
error: function(jqXhr, textStatus, errorThrown){ console.log(errorThrown); } 
});