Javascript jQuery:Can';t在Chrome上运行$.get(http get)

Javascript jQuery:Can';t在Chrome上运行$.get(http get),javascript,jquery,html,Javascript,Jquery,Html,我想使用JavaScript制作一个简单的http get。 我使用jQuery来执行我的请求。我的代码在IE8.0上运行,但不在Chrome(6.0版)上运行。 我的页面有以下代码:(为了简化,我对一个html页面做了一个简单的请求,但我的需求是其他的) 函数sendGet(){ 美元( "http://www.google.pt", 功能(数据){ 警报(“页面内容:”+数据); }); } Http Get演示 正如我所说,当我在IE上加载此页面并按下按钮时,我会收到带有html代码

我想使用JavaScript制作一个简单的http get。 我使用jQuery来执行我的请求。我的代码在IE8.0上运行,但不在Chrome(6.0版)上运行。 我的页面有以下代码:(为了简化,我对一个html页面做了一个简单的请求,但我的需求是其他的)


函数sendGet(){
美元(
"http://www.google.pt",
功能(数据){
警报(“页面内容:”+数据);
});
}
Http Get演示

正如我所说,当我在IE上加载此页面并按下按钮时,我会收到带有html代码的警报。但在Chrome中,警报显示为空文本(null?)。在“开发者工具”的Chrome控制台中,我收到一条消息:“XMLHttpRequest无法加载。访问控制Allow Origin不允许Origin null。”

谁能告诉我这条消息是什么意思?在Chrome中运行我的页面时,我应该更改什么


谢谢,因为您不能将AJAX请求发送到托管页面的域以外的域。因此,除非您的页面位于
http://google.pt
您无法向该域发送AJAX请求。一种可能的解决方法是在您的域上设置一个服务器端脚本,它将充当
google.pt
和客户端之间的桥梁,或者在远程域支持的情况下使用它。

您是否直接从文件打开html文件(例如,地址栏是否显示file://usr/path/to/the/file)?

我们发现chrome在file:///下运行时,不允许在其他域的文件中使用“ajax”。但是,在Safari中,它可以正常工作。

对我们来说,最好的解决方案是使用类似MAMP的东西来运行本地Apache服务器。

虽然我不记得是否更改了任何IE选项,但Darin Dimitrov似乎解释了我的问题

我发现可以使用一些技巧(除了Dimitrov的答案):

  • 使用PHP脚本:

  • 通过编辑regedit配置IE(不推荐):

    (我相信还有其他方法可以在不编辑regedit的情况下禁用跨域保护。但我找不到它)


您从google.pt获得的信息。尝试使用您自己的html或php页面。Chrome来自谷歌家族。他无法加载谷歌本身我试过其他页面。(甚至有些托管在localhost中)源页面不存在此问题。我认为(但我不确定)您可以覆盖IE设置中的安全策略,以允许跨域请求。这不是大多数用户的默认设置,当然也不是你可以依赖的。当我使用默认设置在IE8上运行时,同样的代码失败了。我已经放了一本书。Chrome和FireFox显示警报,但数据为空,即访问被拒绝而失败。+1如果发送请求的页面是从文件系统或本地主机托管的,则某些浏览器允许此操作。默认情况下,Firefox和Chrome更加严格。
 <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
   <html> 
       <script type"text/javascript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <SCRIPT TYPE="text/javascript"  >

    function sendGet(){
        $.get(
            "http://www.google.pt",
            function(data) {
               alert('page content: ' + data);
        });
    }
    </SCRIPT>
    <head> 
        <title> Http Get Demonstration </title> 
    </head> 
    <body> 
        <p/>
        <input type="button" value="Http Get" onclick="sendGet();" />   
    </body> 
   </html>