2013-05-27 53 views
0

我有这样一段代码:有时只是一些数据丢失,调用javascript函数而不是调用PHP函数,从同一个JavaScript

function doSomething(customer) 
{ 

var xmlhttp = new getXMLObject(); 

var customer1 = customer; 

xmlhttp.onreadystatechange=function() { 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtSomething").innerHTML=xmlhttp.responseText; 
    } 
} 

var params = "customer=" + customer; 

xmlhttp.open("POST","/something.php", true); 

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

xmlhttp.setRequestHeader("Content-length", params.length); 

xmlhttp.setRequestHeader("Connection", "close"); 

xmlhttp.send(params); 

post.call(this, customer1); 

} 

在某些处决,第二个函数调用输值变量customer1,但它很好地到达something.php。 有什么问题吗?

谢谢。

回答

1

AJAX是异步的。你开除了AJAX电话,但是。 send()返回立即,无需等待回复。所以你的代码继续,并且不会等待任何来自服务器的呼叫,而是调用post.call()

0

您是否尝试过jQuery Ajax,您可以在其中设置一些回调来检查响应?

而且,它比你的代码更可能是跨浏览器! :)

你可以用这个做一些很酷的事情。检查一个例子:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

Check here.