我想用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>
正如我所说,当我在 IE 上加载此页面并按下按钮时,我会收到带有 html 代码的警报。但在 Chrome 中,警报显示为空文本(null?)。在“开发人员工具”的 Chrome 控制台中,我收到消息:“XMLHttpRequest 无法加载 http://www.google.pt/。Access-Control-Allow-Origin 不允许 Origin null。”
任何人都可以向我解释这条消息的含义是什么?我应该对在 Chrome 中运行的页面进行哪些更改?
谢谢
最佳答案
由于same origin policy您不能将 AJAX 请求发送到与托管您的页面的域不同的域。因此,除非您的网页托管在 http://google.pt
上,否则您无法向该域发送 AJAX 请求。一种可能的解决方法是在您的域上设置一个服务器端脚本,它将充当 google.pt
和客户端之间的桥梁或使用 JSONP如果远程域支持它。
关于javascript - jQuery:无法在 Chrome 上运行 $.get (http get),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924308/