我正在尝试执行一些 AJAX,并且需要知道为什么这段代码没有触发完成或错误警报。我在 Mozilla Firefox 20.0.1
请注意
这段代码是更新数据库(我有一个选择语句读取确切的记录来验证它正在更新)我只是不确定为什么我不能得到响应完成时发出警报。
我有这些 GLOBAL(在 javascript 页面的顶部)声明的变量。
var AjaxEnginePage;
var ClientInfoPage;
var XMLHTTP;
AjaxEnginePage = "AjaxEngine.aspx";
ClientInfoPage="getClientInfo.aspx";
创建连接。
//Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable
function CreateXMLHTTP()
{
try
{
XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
XMLHTTP = null;
}
}
//Creating object in Mozilla and Safari
if(!XMLHTTP && typeof XMLHttpRequest != "undefined")
{
XMLHTTP = new XMLHttpRequest();
}
}
绑定(bind)连接:
function btnUpdateMe_OnClick() {
var me = encodeURIComponent(document.getElementById("MeTextBox").value);
// construct the URL
var requestUrl = AjaxEnginePage + "?Action=UpdateMe&Me=" + me;
CreateXMLHTTP();
// If browser supports XMLHTTPRequest object
if(XMLHTTP)
{
//Setting the event handler for the response
XMLHTTP.onreadystatechange = handleStateChange(me);
//Initializes the request object with GET (METHOD of posting),
//Request URL and sets the request as asynchronous.
XMLHTTP.open("get", requestUrl, true);
//Sends the request to server
XMLHTTP.send(null);
}
处理状态变化
function handleStateChange(me) {
switch (XMLHTTP.readyState) {
case 0: // UNINITIALIZED
case 1: // LOADING
case 2: // LOADED
case 3: // INTERACTIVE
break;
case 4: // COMPLETED
alert("Success");
break;
default: alert("error");
}
如果需要,我可以提供更多代码。 :( 谢谢。
最佳答案
改变:
XMLHTTP.onreadystatechange = handleStateChange(me);
到:
XMLHTTP.onreadystatechange = function() {handleStateChange(me);};
您正在将 onreadystatechange 设置为调用函数的结果,而不是函数。
关于JavaScript XMLHttpRequest.onreadystatechange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369395/
我正在尝试执行一些AJAX,并且需要知道为什么这段代码没有触发完成或错误警报。我在MozillaFirefox20.0.1请注意这段代码是更新数据库(我有一个选择语句读取确切的记录来验证它正在更新)我只是不确定为什么我不能得到响应完成时发出警报。我有这些GLOBAL(在javascript页面的顶部)声明的变量。varAjaxEnginePage;varClientInfoPage;varXMLHTTP;AjaxEnginePage="AjaxEngine.aspx";ClientInfoPage="getClientInfo.aspx";创建连接。//Creatingandsetti
W3Cspec建议执行以下操作:一些简单的代码来处理从网络上获取的XML文档中的数据:functionprocessData(data){//takingcareofdata}functionhandler(){if(this.readyState==this.DONE){if(this.status==200&&this.responseXML!=null&&this.responseXML.getElementById('test').textContent){//success!processData(this.responseXML.getElementById('test')
我正在尝试检测我的UIWebView中任何ajax调用何时完成。我修改了这个答案中的代码:JavaScriptdetectanAJAXevent尽我所能。这是我的尝试:vars_ajaxListener=newObject();s_ajaxListener.tempOnReadyStateChange=XMLHttpRequest.prototype.onreadystatechange;s_ajaxListener.callback=function(){window.location='ajaxHandler://'+this.url;};XMLHttpRequest.protot
猴子如何修补XMLHTTPRequest的onreadystatechange函数。我正在尝试添加一个函数,当从页面发出的每个ajax请求返回时都会调用该函数。我知道这听起来很糟糕,但用例非常特殊。我想将某个SDK与控制台(jqconsole)一起使用,但在不修改外部SDK的情况下显示控制台内ajax调用的状态和结果。我看过thispost它有很好的信息,但没有关于猴子修补回调的信息,这似乎超出了我的JavaScript技能。P.S不能使用jQuery,因为它只支持从jQuery发出的ajax调用,而不是直接从XMLHTTPRequests发出的ajax调用,这里就是这种情况。
我是JavaScript编程的新手。我现在正在开发我的GoogleChrome扩展程序。这是行不通的代码...:P我想要getURLInfo函数返回它的JSON对象,并且想把它放到resp中。有人可以修复我的代码以使其正常工作吗?functiongetURLInfo(url){varxhr=newXMLHttpRequest();xhr.open("GET","http://RESTfulAPI/info.json?url="+escape(url),true);xhr.send();xhr.onreadystatechange=function(){if(xhr.readyState
我的Ajax有问题。目前,我有5对元素:下拉菜单(span标签)和下拉菜单的内容(ul标签)。关于spantags是一个事件监听器,用于onclick,如果点击了drop-downs出现,当在别处点击时,下拉菜单消失。使用硬编码li的下拉菜单工作正常。但是,我正在尝试填充带有动态生成的使用ajax。但是,Ajax行为不端。关于span我还有另一个事件监听器onchange调用js函数calloptions();,这是我的Ajax。我想要实现的是,如果您选择一个选项,其他下拉菜单中的选项会根据您的选择而变化。我的功能是onchange,从下拉列表0循环到下拉列表5,更改的基于所有选择的值
我只需要支持主要的现代浏览器(IE10+、FF、Chrome、Safari)我可以做这个替换吗,因为我想简化我的代码库:来自:xhr.onreadystatechange=function(){if(this.readyState===4){if(this.status===200){o.callback(xhr.responseText);}else{returnfalse;}}else{returnfalse;}};收件人:xhr.onload=function(test){o.callback(xhr.responseText);};我不觉得MDNdocumentation在这方
我只需要支持主要的现代浏览器(IE10+、FF、Chrome、Safari)我可以做这个替换吗,因为我想简化我的代码库:来自:xhr.onreadystatechange=function(){if(this.readyState===4){if(this.status===200){o.callback(xhr.responseText);}else{returnfalse;}}else{returnfalse;}};收件人:xhr.onload=function(test){o.callback(xhr.responseText);};我不觉得MDNdocumentation在这方
我正在用php实现一个登录系统并使用ajax请求。这是我的要求hr.open("POST",url,true);hr.setRequestHeader("Content-type","application/x-www-form-urlencoded");hr.onreadystatechange=function(){varreturn_data=hr.responseText;if(hr.readyState==4&&hr.status==200){alert('islogged');}elseif(hr.status==400){alert('isnotlogged');}}hr
我正在用php实现一个登录系统并使用ajax请求。这是我的要求hr.open("POST",url,true);hr.setRequestHeader("Content-type","application/x-www-form-urlencoded");hr.onreadystatechange=function(){varreturn_data=hr.responseText;if(hr.readyState==4&&hr.status==200){alert('islogged');}elseif(hr.status==400){alert('isnotlogged');}}hr