我正在尝试创建一个连接到服务器的Javascript,接收响应,然后再次自动连接。
<head>
<title>tests</title>
<script type="text/javascript" src="/javascripts/jquery.min.js"></script>
<script type="text/javascript">
function requestData() {
var oRequest = new XMLHttpRequest();
oRequest.onreadystatechange = handleData;
oRequest.open( 'GET', '/test.php', true );
oRequest.send( null );
}
function handleData() {
if( this.readyState == 4 ) {
document.write( this.responseText );
requestData();
}
}
$(function(){
requestData();
});
</script>
</head>
<body>
</body>
上面的代码在chrome中工作正常,但在两次请求后,脚本在Firefox中失败并出现以下错误...
requestData未定义
有谁知道为什么会这样?服务器此刻只响应一位数字。 (PS我知道这在IE中不起作用,那很好)
由于
答案 0 :(得分:1)
我假设有两个请求只要Firefox完成处理文档并关闭它。这意味着当再次调用document.write
时,它会自动调用document.open
并删除现有文档,包括脚本,以便删除该函数。
使用DOM manipulation代替document.write
。
答案 1 :(得分:-1)
如果你使用jquery,你应该使用$ .ajax或类似的东西。它更容易使用而且有效。
http://api.jquery.com/jQuery.ajax/
$.ajax({
url: 'http://my_url',
success: function (data) {
$.ajax({
url: 'http://my_url_2',
success: function (data) {
alert(data);
}
})
}
})