Ajax上传Google Chrome的文件错误?

Ajax上传Google Chrome的文件错误?

问题描述:

我在我的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

不知道你的具体上传,但:

此错误是与你的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来解决它。