当我尝试使用Meteor.http.call("GET")
方法在Meteor中调用外部服务器进行JSON查询时,我收到错误消息“Access-Control-Allow-Origin不允许”。
如何允许我的meteor应用程序向其他服务器发出HTTP调用? 现在我在localhost上运行它。
我运行的代码是:
Meteor.http.call("GET",
"http://api.vasttrafik.se/bin/rest.exe/v1/location.name?authKey=XXXX&format=json&jsonpCallback=processJSON&input=kungsportsplatsen",
function(error, result) {
console.log("test");
}
);
答案 0 :(得分:4)
StackOverflow上还有其他类似的问题。
当您从客户端(AJAX)执行此操作时,您受到尝试连接的服务器的限制。
解决问题的一种方法是,如果您有权访问外部服务器,则可以修改头文件以允许某些或所有来源:
Access-Control-Allow-Origin: *
但是,如果您将呼叫置于服务器端而不提供回调函数,则将同步调用,因此不能使用AJAX,并且它应该成功。
这是
Meteor.methods({checkTwitter: function (userId) {
this.unblock();
var result = Meteor.http.call("GET", "http://api.twitter.com/xyz", {params: {user: userId}});
if (result.statusCode === 200) return true
return false;
}});