Asp.net AJAX&;火狐?

Asp.net AJAX&;火狐?,asp.net,html,ajax,asp.net-ajax,Asp.net,Html,Ajax,Asp.net Ajax,我试图通过ajax在html中填充一个div。 数据来源是谷歌搜索“bing很烂” 我使用 loadXMLDoc('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks') 它适用于InternetExplorer,但不适用于Firefox/Chrome。 如果我只从本地域(test.txt)加载一个文件,那么它就可以工作了 我做错了什么 <!DOCTYPE html PUBLIC

我试图通过ajax在html中填充一个div。 数据来源是谷歌搜索“bing很烂”

我使用

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>

AJAX
函数loadXMLDoc(url)
{
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,url,false);
xmlhttp.send(空);
document.getElementById('test').innerHTML=xmlhttp.responseText;
}
英雄联盟
单击以允许AJAX更改此文本
点击我
点击我
下面是常见的“只需使用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>

var url='1〕http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks';
$.getJSON(url+“&jsoncallback=?”,函数(数据){
$('#test').html(数据);
});
您需要一些服务器端编程来拦截请求,从而绕过跨域问题。通常,您不能从一个域向另一个域发出ajax请求

请参阅上的jQuery文档。类似的性质。

这里是通常的“只需使用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>

var url='1〕http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Bing%20sucks';
$.getJSON(url+“&jsoncallback=?”,函数(数据){
$('#test').html(数据);
});
您需要一些服务器端编程来拦截请求,从而绕过跨域问题。通常,您不能从一个域向另一个域发出ajax请求


请参阅上的jQuery文档。类似的性质。

不能使用AJAX从另一个域读取数据


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

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



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

因为jquery的大小为50 kb。这是不能接受的。2kb是最大值。而且,jQuery在这里也没有帮助。缩小为19k。但是,是的,我没有意识到您将遇到的跨域问题。jQuery在JSONP实现方面仍然有帮助:因为jQuery的大小为50KB。这是不能接受的。2kb是最大值。而且,jQuery在这里也没有帮助。缩小为19k。但是,是的,我没有意识到您将遇到的跨域问题。jQuery的JSONP实现仍然有帮助:所以我必须从服务器端站点(php/aspx)获取它,它为我获取数据?听起来很愚蠢…@unknown我的浏览器不应该将文件写入本地系统,也不应该从服务于我正在查看的源的域以外的域请求信息。但这是我的意见。服务器端几乎总是您从自己域以外的域获取信息所需的方式,特别是如果您希望使用非为前端构建的API。您也可以只使用一个包含您需要的来自GoogleAPI的脚本。Jep,如果我只想查询google,我可以使用google的代码,但我以google源代码为例,它不是我想要获取的地方。因此,本质上,我必须通过我的服务器(特别是当请求的数据不在我的服务器上时)将每个请求路由到客户端,使用三倍的带宽,而不是零倍。我印象深刻,我的意思是这是真正的安全-而不是使其安全-只是禁用它。附录:一个折衷方案:超出50KB/请求流量:所以我必须从服务器端站点(php/aspx)获取数据,该站点为我获取数据?听起来很愚蠢…@unknown我的浏览器不应该将文件写入本地系统,也不应该从服务于我正在查看的源的域以外的域请求信息。但这是我的意见。服务器端几乎总是您从自己域以外的域获取信息所需的方式,特别是如果您希望使用非为前端构建的API。您也可以只使用一个包含您需要的来自GoogleAPI的脚本。Jep,如果我只想查询google,我可以使用google的代码,但我以google源代码为例,它不是我想要获取的地方。因此,本质上,我必须通过我的服务器(特别是当请求的数据不在我的服务器上时)将每个请求路由到客户端,使用三倍的带宽,而不是零倍。我印象深刻,我的意思是这是真正的安全-而不是使其安全-只是禁用它。真是一派胡言。附录:折衷方案:通过以下方式超越50KB/请求流量: