2011-09-18 54 views
0

我在我的web應用程序中使用noswfupload(ajax上傳器),並且它可以在Firefox和IE中正常工作,但它不適用於Google Chrome。我發現一個錯誤,顯示「PHP警告:缺少邊界多部分/形式數據POST數據未知在線0」Ajax上傳Google Chrome的文件錯誤?

誰能告訴我如何解決這個問題?

+0

看起來庫存在一個錯誤,它沒有正確格式化請求。那個庫有bug跟蹤器嗎? – tjameson

+0

nop !!我在錯誤日誌文件中發現錯誤。 –

+0

如果它在Google Chrome中不起作用,那麼它可能也不適用於Safari。你有使用這個框架而不是使用[FormData](http://hacks.mozilla.org/2010/05/formdata-interface-coming-to-firefox/)對象的原因嗎? – tjameson

回答

0

不知道你的具體上傳,但:

此錯誤是與你的XHR請求標頭設置的方式有問題,而且您的請求數據。有效的語法(從我的鉻調試控制檯),看起來是這樣的:

請求頭:

Content-Type:multipart/form-data; boundary=----WebKitFormBoundarykEVXyg09HZBMzplL 

請求數據:

------WebKitFormBoundarykEVXyg09HZBMzplL 
Content-Disposition: form-data; name="foo_bar" 

data:image/jpeg;base64,/9j/4AAQSkZJ 
    [....] 
pAkhCD/9k= 
------WebKitFormBoundarykEVXyg09HZBMzplL-- 

你可以看到HTTP RFC這裏:http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html,它提到的邊界語法在標題....

您可以手動更改標題爲在此答案:How to send multipart/form-data form content by ajax (no jquery)?,或者您可以嘗試解決它在更高的水平。

的FORMDATA對象可以模仿那些參數太多,(雖然它不是在所有的瀏覽器實現)... https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData/Using_FormData_Objects

我有一個jquery Ajax調用PHP文件(具有相同的錯誤)問題,通過開水jQuery和使用formData和原始的httpxhrrequest來解決它。