サーバーサイドの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?
'http://www.dnsname.com:3000/example'の代わりに'/example'だけをURLとして使用しようとしましたか? – Molda
うわー、うまくいきました。私はそれがとても賢いとは考えていませんでした。この回答を投稿すると、正しいと受け入れることができます。 – Trent
Cool。答えを追加しました。おかげで – Molda