我有一个javascript文件,它将FormData变量发送到另一个站点,如下所示:
xhr.open("post", "http://host/path/file.php", true);
xhr.send(data);
数据变量填充正确。我已经验证这不是问题所在,因为我的"网络"选项卡上的有效载荷读取了正确的值,请求标头的内容长度>0:
Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:6021726
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryAj8A2cYqFIFtNwHI
Host:host
Origin:http://host
Referer:http://host/path
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
但是,响应标头内容长度=0:
Access-Control-Allow-Origin:*
Content-Length:0
Content-Type:text/html; charset=UTF-8
Date:Thu, 02 Oct 2014 19:34:49 GMT
Server:Microsoft-IIS/8.5
X-Powered-By:PHP/5.6.0
X-Powered-By:ASP.NET
任何帮助都将不胜感激,我读到IE和Windows身份验证存在问题,导致了这种情况,但我使用的是Chrome和Firefox。对于这两个站点,我都允许匿名和Windows身份验证(它们都是IIS站点)。如有任何帮助,我们将不胜感激。
在这里发布我的问题毫无意义,因为没有人帮忙,如果其他人有这个问题,我会发布解决我问题的方法。当您发送类型为multipart/form-data的XMLHttpRequest时,似乎可以在$_POST变量中找到字符串数据,但任何文件数据都位于$_FILES变量中。
此外,我对浏览器告诉我的内容感到困惑,这不一定是数据没有被发送,而是我的响应标头的内容长度是空的,直到我真正打印了POST/FILES变量,然后它显示的长度>0。我有一段时间陷入了困境,所以我想我也会把它添加到我的解决方案中。