Access-Control-Allow-Origin不允许使用Meteor.http.call

时间:2012-09-20 07:55:28

标签: meteor

当我尝试使用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");    
                      }
                 );

1 个答案:

答案 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;
}});