神秘的ajax json请求问题jQuery
Mysterious ajax json request problems jQuery
我想阅读一个用谷歌api转换为json格式的rss提要;我已经发布了一些警报,但当我运行我的页面时,我看不到它们!为什么?
这是我的jQuery代码:
function getFeed(url){
$('#screen #content').html("");
$.ajax({
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q='+url,
crossDomain: true,
dataType: 'json',
success: function(data) {
alert(3);
$.each(data.entries, function(i,results){
alert(1);
});
}
});
}
getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');
谢谢!
Ajax请求受到浏览器的同源策略的限制。您不能通过ajax直接与服务器对话,因为ajax与脚本运行所在的页面不在同一个域上。因此,您需要使用jquery-ajax:中的jsonp特性
$(document).ready(function () {
function getFeed(url) {
$.ajax({
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=' + url,
crossDomain: true,
dataType: 'jsonp',
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');
});
dataType:'jsonp'是此处的关键字。
你可以在这里搜索"jsonp"来阅读更多关于它的信息:http://api.jquery.com/jQuery.ajax/
或此处:http://bob.ippoli.to/archives/2005/12/05/remote-json-jsonp/
- 您请求的主机也可能不允许第三方或跨浏览器的ajax调用
- 如果您期望JSON作为请求的结果,请使用
$.getJSON()
谢谢Rahul
相关文章:
- 神秘的ajax json请求问题jQuery
- 为什么我在对话框中遇到Ajax请求问题
- Ajax Asysnchronous 请求问题
- angular单元测试http请求问题
- 在使用 JQuery(和 Sinatra)进行 POST 时如何避免跨源请求问题
- Rails 3 Ajax“双重发布请求”问题
- 如何解决我的http请求问题
- 如何解决我的http请求问题
- AngularJS:$http请求问题-没有为jQuery函数调用更新DOM
- ExpressJS POST方法请求问题
- Angular.js ie ajax请求问题
- Node.js get请求问题(异步问题?)
- Angular JS中带Patch方法的HTTP请求问题
- ajax调用的多请求问题
- Facebook集成使用标准GET请求问题
- HTTP POST请求问题
- AJAX post到php请求问题
- XMLHTTP请求问题
- ExpressJS中的POST请求问题
- Firefox和IE的AJAX请求问题