Javascript xmlHTTPrequest赢得';t打开(“获取”,url,true);I';我生气了!PHP

Javascript xmlHTTPrequest赢得';t打开(“获取”,url,true);I';我生气了!PHP,javascript,php,url,get,Javascript,Php,Url,Get,我一直在试图打开一个url,但我很生气,为什么这不起作用。下面列出并解释了代码。任何帮助都将不胜感激 对象: function getXMLHTTPRequest() { var req = false; try { /* for Firefox */ req = new XMLHttpRequest(); } catch (err) { try { /* for some versions of IE */

我一直在试图打开一个url,但我很生气,为什么这不起作用。下面列出并解释了代码。任何帮助都将不胜感激

对象:

function getXMLHTTPRequest() {
   var req =  false;
   try {
      /* for Firefox */
      req = new XMLHttpRequest(); 
   } catch (err) {
      try {
         /* for some versions of IE */
         req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (err) {
         try {
            /* for some other versions of IE */
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (err) {
            req = false;
         }
     }
   }

   return req;
}
对象的名称如下所示:

<script type="text/javascript">
var myDelete = new getXMLHTTPRequest();
</script>
当我这样做时:

        if (myDelete.open("GET", query, true)) {
        myDelete.onreadystatechange = removeArticleResponse;
        myDelete.send(null);
        } else {
            alert ("No road!");
        }
警报(“禁止通行!”);向我显示代码未通过此点执行:

if (myDelete.open("GET", query, true)) {
这意味着if(myDelete){可以工作。代码通过了这个阶段,出于某种原因停在这里:myDelete.open(“GET”,query,true);它不会打开url。我不确定问题出在哪里

编辑:以下是用于访问服务器响应的函数:

function removeArticleResponse () {
    if (myDelete.status == 4) {
        if (myDelete.status == 200) {
                        try {
                            response = myDelete.responseText;
                            document.getElementById('displaynewsletterarticleresult').innerHTML = response;
                        } catch(e) {
                            alert("An error occured while reading the response:" + e.toString());
                        }
        } else {
        alert ("An error occured when attempting to retrieve the data:\n" + myDelete.statusText);
        }
    }
}

根据,XMLHttpRequest.open()没有返回值,因此您的检查总是会失败。

在响应函数中,您的意思是检查.status==4而不是.readyState吗?

所有XMLHttpRequest都绑定到同一源策略。这可能是您的问题


你可以在

上阅读更多关于它的信息,谢谢你的链接。但这意味着我回到了第一步,不知道问题出在哪里。我发送参数的脚本没有收到任何响应。没有错误消息,什么都没有。我知道id已传递,但之后我不确定发生了什么。有什么想法吗?谢谢,很多!我没有编辑过他询问如何显示用于访问服务器响应的函数。也许使用firebug之类的调试器来尝试找出发生了什么会有所帮助?或者只是将警报语句放在任何地方,以便您可以遵循逻辑是否有理由直接使用XMLHttpRequest对象而不是抽象管道的库来自您(比如jQuery)?我不想做假设,但如果您不知道,它们会为您节省很多麻烦w/ajax(以及一般的JS代码)。即使只是为了得到一个好的ajax调用而加载jQuery也是一个很大的开销。谢谢!就是这样。我现在得到了一个响应。这是一个彻头彻尾的错误。
function removeArticleResponse () {
    if (myDelete.status == 4) {
        if (myDelete.status == 200) {
                        try {
                            response = myDelete.responseText;
                            document.getElementById('displaynewsletterarticleresult').innerHTML = response;
                        } catch(e) {
                            alert("An error occured while reading the response:" + e.toString());
                        }
        } else {
        alert ("An error occured when attempting to retrieve the data:\n" + myDelete.statusText);
        }
    }
}