Javascript jQuery:Can';t在Chrome上运行$.get(http get)
我想使用JavaScript制作一个简单的http get。 我使用jQuery来执行我的请求。我的代码在IE8.0上运行,但不在Chrome(6.0版)上运行。 我的页面有以下代码:(为了简化,我对一个html页面做了一个简单的请求,但我的需求是其他的)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代码
函数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的情况下禁用跨域保护。但我找不到它)
<!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>