Javascript 从本地主机或文件访问JSON服务://

Javascript 从本地主机或文件访问JSON服务://,javascript,json,xmlhttprequest,twitter,Javascript,Json,Xmlhttprequest,Twitter,我正在制作一个html页面,打算在PC上本地运行,最好没有本地服务器运行(文件://)。我还使用jQuery使操作/AJAX变得更简单 我试图从twitterapi加载2个结果,但是我得到了一个错误。代码如下: $.getJSON("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=someuser&count=9", {}, function (data) { $.each(data

我正在制作一个html页面,打算在PC上本地运行,最好没有本地服务器运行(文件://)。我还使用jQuery使操作/AJAX变得更简单

我试图从twitterapi加载2个结果,但是我得到了一个错误。代码如下:

$.getJSON("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=someuser&count=9", {},
    function (data) {
        $.each(data.items, doSomething1);
    });
$.getJSON("http://search.twitter.com/search.json?q=somequery&result_type=recent&count=9", {},
    function (data) {
        $.each(data.items, doSomething2);
    });
我也尝试了下面的代码,但它没有改变结果

$.getJSON("http://api.twitter.com/1/statuses/user_timeline.json",
    {
        count:          "9",
        screen_name:    "someuser"
    },
    function(data) {
        $.each(data.items, updateAWTweets);
    });
$.getJSON("http://search.twitter.com/search.json",
    {
        q:              "somequery",
        result_type:    "recent",
        count:          "9"
    },
    function(data) {
        $.each(data.items, updateHashTagTweets);
    });
我在chrome中(在本地主机服务器上)遇到以下错误:

或(带有文件://链接)

有人知道我如何解决这个问题吗?

您遇到了限制-您的脚本无法访问除加载域之外的任何其他域

  • 您可以试一试——这是跨域获取数据的一种常见解决方案:

    您的代码如下所示(注意URL中添加了
    callback=?
    ):

  • 另一个选项是设置代理—您可以使用ApacheHTTPD作为代理/反向代理来绕过此限制

  • 将文件添加到URL

    $.getJSON("http://search.twitter.com/search.json?callback=?", {
    

    不要使用此
    $.getJSON()
    它不灵活。。 你可以用

    $.ajax({
        url:"test.json",
        dataTypr:"json",
        async:false
    }).responseText;
    

    这可以通过html编码轻松访问…

    该错误是一个跨站点脚本警告。的可能重复似乎合理,但现在我得到一个不同的错误:“Uncaught TypeError:无法读取undefined的属性'length'”您似乎试图访问您认为是数组但实际上是未定义的
    length
    属性。确保您的数据确实存在(
    if(!assumedArray){//handle missing data}else{//do comment processing}
    。当搜索查询没有结果时,Twitter会返回什么?另外,请查看一些关于如何调试此(和其他)的建议例外情况。这是一个为特定用户获取推文并显示搜索结果的程序。这是否有帮助?我只是使用内置的jQuery函数,自己根本不访问长度。但无论如何,我找到了解决问题的方法,thx:)
    $.getJSON("http://search.twitter.com/search.json?q=somequery&result_type=recent&count=9&callback=?", 
              {},
              function (data) {
                      $.each(data.items, doSomething2);  
         });
    
    $.getJSON("http://search.twitter.com/search.json?callback=?", {
    
    $.ajax({
        url:"test.json",
        dataTypr:"json",
        async:false
    }).responseText;