当我尝试使用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");
}
);
Run Code Online (Sandbox Code Playgroud)
小智 4
StackOverflow 上还有其他类似的问题。
当您从客户端 (AJAX) 执行此操作时,您会受到尝试连接的服务器的限制。
解决此问题的一种方法是,如果您有权访问外部服务器,则可以通过以下方式修改头文件以允许部分或全部来源:
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
但是,如果您将调用放在服务器端并且不提供回调函数,则调用将同步进行,因此不使用 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;
}});
Run Code Online (Sandbox Code Playgroud)