我正在尝试构建一个与attask.com的REST API通信的接口。他们的API很方便,因为它返回JSON。我认为这很完美,因为我可以忘记服务器端的C#代码,只需使用jQuery和AJAX编写接口。但是,当我尝试向他们的API发出AJAX请求时,我在Chrome的javascript控制台中收到错误:
Access-Control-Allow-Origin不允许原点http://mysite.com。
这是什么意思?这是浏览器阻止请求吗?如果是这样,为什么?
如果我对服务器没有任何控制权并且它没有响应JSONP请求,那么我唯一的选择是使用服务器端REST客户端并让我的AJAX与我自己的域进行通信而不是试图交叉 - 结构域
答案 0 :(得分:1)
或者,您可以使用现代浏览器支持的未来标准Cross Origin Resource Sharing,并使用其他浏览器回退到JSONP。
答案 1 :(得分:1)
我发现jQuery-JSONP是最简单的方法 jQuery JSONP是jQuery实现JSONP的替代解决方案
jQuery-JSONP功能:
用于从YouTube获取用户个人资料的示例代码
function getProfile(userId) {
$.jsonp({
"url": "http://gdata.youtube.com/feeds/api/users/"+userId+"?callback=?",
"data": {
"alt": "json-in-script"
},
"success": function(userProfile) {
// handle user profile here
},
"error": function(d,msg) {
alert("Could not find user "+userId);
}
});
}
了解更多samples。
答案 2 :(得分:0)
你想要使用JSONP,JQuery对内置的内容有很好的支持。See JQuery Documentation for more info.
答案 3 :(得分:-1)
您需要发出JSONP请求来执行跨域AJAX请求,您可以通过附加
来执行此操作callback=?
将您发送请求的网址发送到