jQuery:无法在Chrome上运行$ .get(http get)

Zé *_*los 2 html javascript jquery

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

 <!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> 
Run Code Online (Sandbox Code Playgroud)

正如我所说,当我在IE上加载此页面并按下按钮时,我会收到带有html代码的警报.但在Chrome中,警报显示为空文本(null?).在"开发人员工具"的Chrome控制台中,我收到消息:"XMLHttpRequest无法加载http://www.google.pt/.Access-Control-Allow-Origin不允许使用Origin null."

任何人都可以解释一下这条消息的含义是什么?我应该更改我的页面在Chrome中运行?

谢谢

Dar*_*rov 8

由于源策略相同,您无法将AJAX请求发送到与托管您网页的域不同的域.因此,除非您的页面托管,否则http://google.pt无法向此域发送AJAX请求.一种可能的解决方法是在您的域上设置服务器端脚本,该脚本将充当google.pt客户端之间的桥梁,或者如果远程域支持JSONP,则使用JSONP.

  • +1有些浏览器允许这个*if*发送请求的页面是从文件系统或localhost托管的.Firefox和Chrome默认情况下更严格. (2认同)