2016-02-04 135 views
0

我已經做了很多次,所以我老實地困惑,爲什麼這是無法通過任何東西。我試過打印結果(腳本得到一個響應並打印文件)。XMLHTTP請求發送空郵件

function submit_form_inpage(path, data, watchForChange){ 
    alert(data); 
    watchForChange = watchForChange || false; 
    var request = new XMLHttpRequest(); 
    request.open('POST', path, true); 
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
    if (watchForChange == true) { 
     request.onreadystatechange = function() { 
      if (request.readyState == 4) { 
       document.write(request); 
       if (request.status==200 && request.status < 400){ 
        var xmldata=request.responseText //retrieve result as an XML object 
        alert("XML:" + xmldata); 
       } 
       else{ 
        alert("An error has occured making the request:" + request.status); 
       } 
      } 
     } 
    } 
    var temp_string = array_to_string_for_post(data); 
    var temp = JSON.stringify(data); 
    alert(temp); 
    request.send(temp); 
} 

我的PHP是

print_r($_POST); 

,我的結果是

XML: Array() 

儘管在傳遞的數據(這是雙重檢查權由我的警報被髮送之前)的事實

{"reason":"get_stuff","build_name":"test"} 

回答

1

你說你w發送表單編碼數據。

request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 

然後你發:

temp = JSON.stringify(data); 

JSON是application/json沒有application/x-www-form-urlencoded(而不是原生PHP反正支持)。

要麼你的數據編碼爲application/x-www-form-urlencoded或更正您的內容類型和parse it manually in PHP

+0

謝謝,我完全忘記了當我開始修改其他一些代碼時,我已經把它留在了那裏。這就是我用101度發燒編碼得到的結果。 :P – liljoshu

+0

不幸的是,這並沒有解決它,雖然這是一個需要改變。 – liljoshu

+0

@liljoshu - 你究竟發生了什麼變化? – Quentin