2017-05-26 22 views
0

サーバーサイドのajax呼び出しでaxiosを使用しているポート3000でNode.jsアプリケーションを実行しています。Node.jsローカルサーバー側スクリプト呼び出しのAxios

マイアクシオのAJAX呼び出しが/public/views/example.js

example() { 

    axios.get (
     // server ip, port and route 
     "http://192.168.1.5:3000/example", { 
      params : { 
       arg01: "nothing" 
      } 
     } 
    ) 
    .then (
     result => console.log(result) 
    ) 
    .catch (
     error => console.log(error) 
    ); 

} 

、それは/公共/ロジック/ example_routeを呼び出しているルートで行われ、次のように

それは働いています.jsファイル

router.get("/example", function(req, res) { 

    // just to test the ajax request and response 

    var result = req.query.arg01; 
    res.send(result); 

}); 

私はネットワーク内部からそれを実行するときに、これはすべて正常に動作していますしかし、もし私が3000ポートを転送しているDNSを使用してネットワークの外部からそれを実行しようとすると失敗し、私はDNSを使用する必要があるので、外部で192.168.1.5を実行しても有効ではないと思います。

私は、次の

example() { 

    axios.get (
     // server ip, port and route 
     "http://www.dnsname.com:3000/example", { 
      params : { 
       arg01: "nothing" 
      } 
     } 
    ) 
    .then (
     result => console.log(result) 
    ) 
    .catch (
     error => console.log(error) 
    ); 

} 

にaxiosコールを変更すると、それが外部ではなく内部で再び動作します。この問題を回避する方法はありますか?

は、私はPHPでのAjax呼び出しを行うとき、私はルート

$.ajax({ 
    url  : "logic/example.php", 
    type  : "GET", 
    dataType : "json", 
    data  : { 
        "arg01":"nothing" 
       }, 
    success : function(result) { 
        console.log(result); 
       }, 
    error : function(log) { 
        console.log(log.message); 
       } 
}); 

するのではなく、スクリプトの実際の位置を使用することができますので、私はこの問題を持っていない、ノードと似た何かを達成することが可能であることを知っています.jsとaxios?

+1

'http://www.dnsname.com:3000/example'の代わりに'/example'だけをURLとして使用しようとしましたか? – Molda

+0

うわー、うまくいきました。私はそれがとても賢いとは考えていませんでした。この回答を投稿すると、正しいと受け入れることができます。 – Trent

+1

Cool。答えを追加しました。おかげで – Molda

答えて

1

アクチュアリホストとポートがないパスを使用できます。

example() {  
    axios.get (
     // just the path without host or port 
     "/example", { 
      params : { 
       arg01: "nothing" 
      } 
     } 
    ) 
    .then (
     result => console.log(result) 
    ) 
    .catch (
     error => console.log(error) 
    );  
} 
+0

おかげで、私はとても素敵なソリューションを期待していなかった:D – Trent

関連する問題