Javascript 神秘的ajax json请求问题jQuery

Javascript 神秘的ajax json请求问题jQuery,javascript,jquery,ajax,json,rss,Javascript,Jquery,Ajax,Json,Rss,我想阅读一个用谷歌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,

我想阅读一个用谷歌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调用
  • 如果您希望JSON作为请求的结果,请使用
    $.getJSON()
  • 谢谢 拉胡尔

  • 您请求的主机也可能不允许第三方或跨浏览器的ajax调用
  • 如果您希望JSON作为请求的结果,请使用
    $.getJSON()
  • 谢谢
    Rahul

    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');
    
        });
    
    数据类型:“jsonp”是这里的关键字

    您可以在此处通过搜索“jsonp”了解更多信息:

    或在此:

    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');
    
        });
    
    数据类型:“jsonp”是这里的关键字

    您可以在此处通过搜索“jsonp”了解更多信息:

    或在此:

    如果要使用jQuery获取json,请使用$.getJSON。。并注册一个完整的处理程序。。可能您的请求无效或类似(错误的url等),您可能希望url编码
    url
    开发人员控制台中的输出是什么?您是否尝试附加错误处理程序以读取错误消息?我有一条小消息:Uncaught SyntaxError:意外标记,但当我使用jsLint尝试我的js代码时,没有问题…如果您想使用jQuery获取json,请使用$.getJSON。。并注册一个完整的处理程序。。可能您的请求无效或类似(错误的url等),您可能希望url编码
    url
    开发人员控制台中的输出是什么?你有没有尝试附加一个错误处理程序来读取错误消息?我有一个小消息:Uncaught SyntaxError:意外的标记,但是当我用jsLint尝试我的js代码时没有问题…我已经尝试使用getJson,它是有效的,但是为什么我的ajax请求不起作用?试着在URL中提供回调函数。它应该可以工作,因为getJSON()在内部调用$.ajax本身。我已经尝试使用getJSON,它可以工作,但是为什么我的ajax请求不能工作呢?请尝试在URL中提供回调函数。它应该可以工作,因为getJSON()在内部调用$.ajax本身。@Rochester:请注意,服务器也必须支持JSONP。它并不是一个可以让您对所有域执行跨域请求的魔弹。@Rochester:请注意,服务器也必须支持JSONP。它不是一个神奇的子弹,让您跨域请求所有域。