Javascript 如何从HTTPObject传递变量
我对Javascript和一般的web编程非常陌生。我想我误解了一些基本的东西,但我一直无法弄清楚是什么 我有以下代码:Javascript 如何从HTTPObject传递变量,javascript,ajax,Javascript,Ajax,我对Javascript和一般的web编程非常陌生。我想我误解了一些基本的东西,但我一直无法弄清楚是什么 我有以下代码: function checkUserAuth(){ var userAuthHttpObject = new XMLHttpRequest(); var url = baseURL + "/userAuth"; userAuthHttpObject.open("POST",url,true); userAuthHttpObject.setRequestHeader("Cont
function checkUserAuth(){
var userAuthHttpObject = new XMLHttpRequest();
var url = baseURL + "/userAuth";
userAuthHttpObject.open("POST",url,true);
userAuthHttpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
userAuthHttpObject.onload=function(){
if (userAuthHttpObject.readyState == 4) {
var response = json.loads(userAuthHttpObject.responseText);
return response; //This is the part that doesn't work!
}
};
userAuthHttpObject.send(params);
}
我想在我的页面上用以下内容来称呼它:
var authResponse = checkUserAuth();
然后用这些数据做我想做的
但是,返回变量只会将其返回到userAuthObject,而不是返回到最初调用的函数
有没有一种方法可以将数据从HttpObject中取出,并放入调用该函数的页面?使用AJAX需要考虑异步行为,这与其他类型的编程不同。您希望设置回调函数,而不是直接返回值 创建另一个JavaScript函数,该函数接受AJAX响应作为参数。这个函数,我们称之为“takeAction(response)”,应该做它需要做的任何事情,比如打印一条失败消息,或者在一个隐藏字段中设置一个值,然后提交一个表单,等等 然后在有“返回响应”的地方放上“采取行动(响应)”
因此,现在,takeAction将执行调用“var authResponse=checkUserAuth();”之后您将执行的任何操作。在继续编写您所要求的脚本之前,您应该从以下几个最佳实践开始
$.ajax({
//get an html chunk
url: 'ajax/test.html',
// do something with the html chunk
success: function(htmlData) {
//replace the content of <div id="auth">
$('#auth').html(htmlData);
//replace content of #auth with only the data in #message from
//the data we recieved in our ajax call
$('#auth').html( function() {
return $(htmlData).find('#message').text();
});
}
});
$.ajax({
//获取一个html块
url:'ajax/test.html',
//对html块执行一些操作
成功:函数(htmlData){
//替换
$('#auth').html(htmlData);
//将#auth的内容仅替换为#message from中的数据
//我们在ajax调用中收到的数据
$('#auth').html(函数(){
返回$(htmlData).find('#message').text();
});
}
});