AJAX&火狐?

时间:2010-01-12 20:42:52

标签: asp.net html ajax asp.net-ajax

我正在尝试通过ajax填充html中的div。 数据源是谷歌搜索“bing sucks”

我用

调用方法
loadXMLDoc('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks')

它适用于InternetExplorer,但它不适用于Firefox / Chrome。 如果我只从本地域(test.txt)加载一个文件,那么它可以工作。

我做错了什么?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>AJAX</title>
<script language="javascript">



function loadXMLDoc(url)
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET",url,false);
    xmlhttp.send(null);
    document.getElementById('test').innerHTML=xmlhttp.responseText;
}


</script>
</head>

<body>

    <div id="lol">
        lol
    </div>

<div id="test">
<h2>Click to let AJAX change this text</h2>
</div>


<button type="button" onclick="loadXMLDoc('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks')">Click Me</button>
<button type="button" onclick="loadXMLDoc('test.txt')">Click Me</button></body>
</html>

2 个答案:

答案 0 :(得分:3)

这是通常的“只使用jQuery”帖子!

为什么不使用jQuery?它将消除所有这些浏览器的不一致性:

<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript">
var url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks';
$.getJSON(url + "&jsoncallback=?", function(data){
   $('#test').html(data);
});
</script>

您需要一些服务器端编程来拦截请求以解决跨域问题。通常,您无法从一个域向另一个域发出ajax请求。

请参阅.getJSON上的jQuery文档。具有类似性质的Previous question

答案 1 :(得分:3)

您不能使用AJAX从其他域读取数据。

您需要在您的域上编写一个服务器端脚本,向Google发送请求并将结果转发给您。