Php 远程服务器上的XmlHttpRequest状态=0,本地主机上的状态为200

Php 远程服务器上的XmlHttpRequest状态=0,本地主机上的状态为200,php,javascript,ajax,apache,xmlhttprequest,Php,Javascript,Ajax,Apache,Xmlhttprequest,我有两个几乎相同的PHP代理脚本,我通过几乎相同的JS调用它们。第一种方法适用于所有场景 第二个(下面的代码)可以在Firefox和Chrome中的本地主机IIS服务器上运行。在远程Glassfish Apache服务器上,它在Firefox中工作,但返回status=0,在Chrome中返回为空(在v22和v26中测试)。这两个PHP代理脚本实际上是相同的,下载的数据长度相似(在1到4 MB之间)。使用以下JS,将触发else和onerror警报 var dateQueryText = int

我有两个几乎相同的PHP代理脚本,我通过几乎相同的JS调用它们。第一种方法适用于所有场景

第二个(下面的代码)可以在Firefox和Chrome中的本地主机IIS服务器上运行。在远程Glassfish Apache服务器上,它在Firefox中工作,但返回
status=0
,在Chrome中返回为空(在v22和v26中测试)。这两个PHP代理脚本实际上是相同的,下载的数据长度相似(在1到4 MB之间)。使用以下JS,将触发else和onerror警报

var dateQueryText = interviewDays[exitDay];
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
    if (xmlhttp.readyState == 4){
        if (xmlhttp.status == 200){
            var xmlDoc=xmlhttp.responseXML;
            processGPX(xmlDoc);
        }
        else{alert("Download of GPS data failed for date " + dateQueryText + " Status: " + xmlhttp.status);} 
    }
}
xmlhttp.onerror = function (e){alert("Error encountered and download of GPS data failed for date " + dateQueryText + " Status: " + xmlhttp.status);};

xmlhttp.open("POST","proxy2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
params = ("case=" + caseID + "&gps=true" + "&date=" + dateQueryText);
xmlhttp.send(params);
我尝试了以下方法,但没有效果:

  • 异步
    同步
    下载
  • 重写
    返回
    类型,因为服务器并不总是理解GPX(XML格式的GPS数据){xmlhttp.overrideMimeType(“text/XML”);}
  • 提供PHP脚本的完整路径
是什么导致了Chrome的问题

编辑:这是失败的PHP请求的请求头。没有收到任何答复

Request URL: https://www.XXX.edu/AAA/BBB/CCC/proxy2.php

Request Headers
Cache-Control:no-cache
Content-type:application/x-www-form-urlencoded
Origin:https://www.XXX.edu
Pragma:no-cache
Referer:https://www.XXX.edu/AAA/BBB/CCC/exitgraphic.php?case=TESTCASE&instrument=0001&mode=TEST
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko) Ubuntu/12.10 Chromium/22.0.1229.94 Chrome/22.0.1229.94 Safari/537.4

Form Data
case:TESTCASE
inst:0001
mode:TEST
gps:true
date:02222013

在Chrome的开发者工具(工具-->开发者工具)激活的情况下,您能否重新尝试失败的请求,并在此处发布请求和响应的标题(在网络选项卡中),以及控制台选项卡中的任何错误消息

在上面添加了请求头。没有收到任何答复。对于上面的JS,我无法确定实际错误是什么,因为xmlhttp.onerror中的e对象是XMLHttpRequestProgressEvent类型。当我将其切换到同步模式时,我得到了“NETWORK_ERR:XMLHttpRequest Exception 101”堆栈:“错误:同步请求中出现网络错误。这是跨域请求吗?”?如果是这样,您可能需要向服务器添加对的支持。相同的域。代理脚本与请求URL位于同一目录中。