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

标签 php javascript ajax apache xmlhttprequest

我有两个几乎相同的 PHP 代理脚本,我通过几乎相同的 JS 调用它们。第一个在所有情况下都可以正常工作。

第二个(下面的代码)适用于我在 Firefox 和 Chrome 中的本地主机 IIS 服务器。在远程 Glassfish Apache 服务器上,它在 Firefox 中运行,但在 Chrome 中返回 status = 0 并返回空(在 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);

我试过以下方法都无济于事:

  • 异步 & 同步下载
  • 覆盖 return 类型,因为 GPX(XML 格式的 GPS 数据)并不总是被服务器理解 {xmlhttp.overrideMimeType("text/xml");}.
  • 提供 PHP 脚本的完整路径

可能是什么导致了 Chrome 中的问题?

编辑:这是失败的 PHP 请求的请求 header 。没有收到回复。

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 开发者工具(工具 --> 开发者工具)的情况下重试失败的请求,并在此处发布请求和响应的 header (在“网络”选项卡中)以及“控制台”选项卡中的任何错误消息?

关于php - XmlHttpRequest 状态 = 远程服务器上的 0,本地主机上的状态 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271853/

相关文章:

php - 在新标签页中打开 dompdf 从给定页面获取数据

php - 将对象渲染为 Twig 模板中的上下文

javascript - 使用带有 Javascript 的 TypeORM 快速路由

javascript - Internet Explorer 内存泄漏

php - 调用数学编辑器

PHP 和 Paypal 。单击提交时,将数据保存到数据库并重定向到 paypal

javascript - 著名的 : can't draw image to CanvasSurface with own size property

jquery - 如何在 jQuery ajax 请求中使用 post 方法的超时属性?

ajax - 在没有表单元素的 Django 中使用 ajax 请求

ajax - PrimeFaces 对话框仅在第一次出现时进行验证