我想用Dart和PHP做一些異步行爲。這是我的代碼:如何以異步方式將數據從Dart發佈到PHP?
var data = new FormData();
data.append("name", "testing");
var httpRequest = new HttpRequest();
httpRequest
..open('POST', path)
..setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
..onLoadEnd.listen((e) => requestComplete(httpRequest))
..send(data);
path
設置正確。因爲我在做異步操作,所以我不想實際提交整個表單,這就是爲什麼我嘗試製作自己的FormData對象並將需要的信息附加到它的原因。但是,當我在PHP中時,未設置$_POST['name']
。我想也許這是請求標題,但我試圖改變它,並沒有幫助。我得到這個工作(設置$_POST['name']
)的唯一方法是將data
更改爲"name=testing"
。我曾嘗試觀看原始post數據,並將其結果是:
------WebKitFormBoundaryUfDGArtA6R3ZWVoj Content-Disposition: form-data; name="name" testing------
WebKitFormBoundaryUfDGArtA6R3ZWVoj--
提交實際形式(不含非同步)但是給出了正確的行爲。除了key = value字符串之外,還有其他選項嗎?
可能重複的[XMLHttpRequest發佈數據未被髮送](http://stackoverflow.com/questions/21181113/xmlhttprequest-post-data-not-being-sent) – Musa
我昨天嘗試了許多其他答案,沒有任何東西工作...今天,我再次拿出請求標題行,現在它正在工作......我想知道爲什麼當我將內容類型設置爲multipart/form-data時它不起作用。好吧。感謝讓我重試。 – Lathan
問題在於邊界,如果您將其設置在內容類型標題中,它必須與瀏覽器生成的標題匹配。 – Musa