Javascript xmlHTTPrequest赢得';t打开(“获取”,url,true);I';我生气了!PHP
我一直在试图打开一个url,但我很生气,为什么这不起作用。下面列出并解释了代码。任何帮助都将不胜感激 对象: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 */
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);
}
}
}