我对使用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);
});
答案 0 :(得分:3)
请参阅this page。
可以通过CORS或JSONP从开发环境访问API。
是的,但是,您要求的网站专门允许CORS (cross-origin resource sharing)以及JSONP请求,这意味着您可以使用其中一种方法从其他来源请求数据。将.ajax()
方法与dataType: 'json'
一起使用意味着您正在使用CORS。您还可以使用dataType: 'jsonp'
发出JSONP请求。
CORS和JSONP都是特定的服务器选项,可以启用这些选项以允许用户从其他来源请求数据。请记住,数据可能在服务器上被修改为恶意数据,因此如果您开始使用该数据,这可能是一个潜在的安全漏洞。请务必仅将CORS或JSONP与您信任的服务一起使用。