<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript" language="javascript">
$.ajax({
type: "GET",
cache: false,
url: 'http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=school',
contentType: "application/json; charset=utf-8",
success: function(msg) {
alert(""+msg.length);
},
error: function (e) {
alert("Failed to Get declassification details");
}});
</script>
</body>
</html>
我无法弄清楚这个AJAX调用出了什么问题.WENT在这个论坛上通过几个SIMILAR
的问题,但没有一个对我有用。
我必须以JSON格式从Google搜索中获取结果集。
答案 0 :(得分:1)
由于跨域安全策略,浏览器正在删除请求。 尝试使用JSONP(dataType:“jsonp”)。 由于安全限制,通常无法向第三方网站发出Ajax请求。但是有几种客户端技术可以解决这些限制,其中一种是JSONP。 你不会从JSONP获得的一件事是网络错误通知或任何对错误形成的响应做出很好响应的事情,因此你必须接受这一点作为在其他域上调用服务的能力的权衡。
JSONP为何以及如何运作:
查看响应的不同之处: http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=school
VS
答案 1 :(得分:1)
您应该使用dataType
而不是'contentType'。这是代码:
$.ajax({
type: "GET",
cache: false,
url: 'http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=school',
dataType: "jsonp",
success: function(msg) {
alert("" + msg.responseData.results.length);
},
error: function(e) {
alert("Failed to Get declassification details");
}
});
以下是example。
来自文档:
contentTypeString 将数据发送到服务器时,请使用此内容类型。
dataTypeString 您希望从服务器返回的数据类型。