2012-09-20 12 views
9

Meteor.http.call("GET")メソッドを使用してMeteorでJSONクエリの外部サーバーを呼び出そうとすると、「アクセス制御で許可されていません-原点"。Meteor.http.callはAccess-Control-Allow-Originによって許可されていません

流星のアプリケーションが他のサーバーに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");  
         } 
       ); 

答えて

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; 
}}); 
+0

ですか? CORSなどを有効にするためには?コードスニペットかもしれない? – garmoncheg

関連する問題