我以为ajax是同源政策?

时间:2014-09-03 20:55:35

标签: javascript jquery ajax json

我对使用jquery ajax的相同域orgin策略感到困惑。如果我使用jquery向url发出get请求,我可以返回结果。我错过了什么?我认为它仅限于相同的原始政策。

    $(function () {
        var data;                     

      var x =   $.ajax({

            dataType: 'json', 
            url: 'http://jsonplaceholder.typicode.com/posts', 
            data: data, 
            success: function(){ console.log("true");}, 
            failure: function(){console.log("failed");}
        });


      console.log(x);

    });

1 个答案:

答案 0 :(得分:3)

请参阅this page

  

可以通过CORS或JSONP从开发环境访问API。

是的,但是,您要求的网站专门允许CORS (cross-origin resource sharing)以及JSONP请求,这意味着您可以使用其中一种方法从其他来源请求数据。将.ajax()方法与dataType: 'json'一起使用意味着您正在使用CORS。您还可以使用dataType: 'jsonp'发出JSONP请求。

CORS和JSONP都是特定的服务器选项,可以启用这些选项以允许用户从其他来源请求数据。请记住,数据可能在服务器上被修改为恶意数据,因此如果您开始使用该数据,这可能是一个潜在的安全漏洞。请务必仅将CORS或JSONP与您信任的服务一起使用。