9

当我尝试使用该方法在 Meteor 中为 JSON 查询调用外部服务器时,Meteor.http.call("GET")我收到错误消息“Access-Control-Allow-Origin 不允许”。

如何允许我的流星应用程序对其他服务器进行 HTTP 调用?现在我在本地主机上运行它。

我运行的代码是这样的:

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");    
                      }
                 );
4

1 回答 1

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;
}}); 
于 2012-10-29T17:40:29.670 回答