2010-08-28 30 views
1

我想從我的擴展中使用的Web工作者使用POST方法發出異步請求。事情是,它不適合我。 在服務器端,我有PHP腳本監聽$ _POST變量中的數據。儘管我能夠建立與服務器的連接,甚至可以傳遞URL中的一些數據(GET),但$ _POST總是空的。來自Firefox的網絡工作者的異步POST請求

這裏是我使用的網絡工作者的最新代碼:

var serviceUrl = "http://localhost/pfm/service/index.php"; 
var invocation = new XMLHttpRequest(); 
if(invocation){ 
    invocation.open('POST', serviceUrl, true); 
    invocation.setRequestHeader('X-PINGOTHER', 'pingpong'); 
    invocation.setRequestHeader('Content-Type', 'text/plain'); 
    invocation.onreadystatechange = function(){processResponse(invocation);}; 
    invocation.send("action=init"); 
} 

(MDN從網站上借的時候我有一個想法,這個問題是同根同源的政策)

之前對此,我使用了一個相當明顯且可笑的簡單方法:在這種情況下,請求也通過了,但$ _POST仍然是空的。

Web工作人員不允許POST請求嗎?

現在一切都在本地主機上進行測試。

回答

0

不要設置內容類型text/plain

invocation.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 

如果你正在爲Firefox開發4+您可能也有興趣在FormData objects

+0

謝謝你,它的工作。 – kooker 2010-08-28 12:42:56