来自服务器的响应

时间:2010-03-11 15:45:50

标签: xmlhttprequest response

当我向服务器创建请求时:

<script language="javascript" type="text/javascript">
function ajaxFunction()
var ajaxRequest;
try{
ajaxRequest = new XMLHttpRequest();
} catch (e){
try{
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Your browser broke!");
return false;
}
}

} ajaxRequest.onreadystatechange = function(){

if(ajaxRequest.readyState == 4){

document.write(ajaxRequest.responseText);

document.myForm.time.value = ajaxRequest.responseText;
    }
}
ajaxRequest.open("GET", "http://www.bbc.co.uk", true);
ajaxRequest.send(null); 

}

</script>

为什么回答什么都没有?为什么回复不是这个网站的HTML代码?

2 个答案:

答案 0 :(得分:1)

应该有效(我现在没有时间对其进行测试。)

function ajaxFunction() { //Added open {
    var ajaxRequest;
    try{
    ajaxRequest = new XMLHttpRequest();
    } catch (e){
// Removed additional try / catch
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
        alert("Your browser broke!");
        return false;
        }
    } 
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.write(ajaxRequest.responseText);
            document.myForm.time.value = ajaxRequest.responseText;
        }
    }; // Added semi-colon to the end of the anonymous function definition
ajaxRequest.open("GET", "http://www.bbc.co.uk", true);
ajaxRequest.send(null); 
}

一些注意事项:

  • Javascript中大多数情况下不需要空格,但正确的缩进使 更容易发现语法错误。
  • 将属性绑定到匿名函数时,您需要关注} ;
  • 一旦你理解了它的工作原理,就可以深入了解一个更大的库ajax​​函数/模块。 (学习总是一件好事,而ajax是真正需要几十个工时来解决浏览器之间所有差异的领域之一。) +

附录:

跨域ajax请求非常难以正确执行(即安全,安全且无错误) - Same-Domain Origin policy禁止直接javascript。

有关主题的更多讨论以及使用代理或jsonp

解决问题的方法,请参阅this questionthis one

+ jQuery的ajax函数 325行(并且不计算$.ajax.settings$.extend()

答案 1 :(得分:0)

您可能会考虑使用像jQuery这样的库来执行AJAX请求 - 它们可以为您处理所有跨浏览器的怪癖,并可以执行大量额外的工作来启动。您的代码可以像

一样简单
$.get(
  'http://www.bbc.co.uk',
  function(data) {
    // do something with data
  }
);`