Node.js 用于本地服务器端脚本调用的 Axios
Node.js Axios for local Server Side script call
我在端口 3000 上有一个 Node.js 应用程序 运行ning,它使用 axios 进行服务器端 ajax 调用。
工作如下
我的 axio 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)
);
}
及其调用的路由 /public/logic/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)它失败了,我想这是因为在外部执行时 192.168.1.5 不再有效,因为我必须使用 DNS。
当我将 axios 调用更改为以下内容时
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)
);
}
然后它在外部再次起作用但在内部不起作用。有办法解决这个问题吗?
我知道在使用 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);
}
});
是否可以用 Node.js 和 axios 实现类似的东西?
您可以使用没有实际主机和端口的路径。
example() {
axios.get (
// just the path without host or port
"/example", {
params : {
arg01: "nothing"
}
}
)
.then (
result => console.log(result)
)
.catch (
error => console.log(error)
);
}
我在端口 3000 上有一个 Node.js 应用程序 运行ning,它使用 axios 进行服务器端 ajax 调用。
工作如下
我的 axio 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)
);
}
及其调用的路由 /public/logic/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)它失败了,我想这是因为在外部执行时 192.168.1.5 不再有效,因为我必须使用 DNS。
当我将 axios 调用更改为以下内容时
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)
);
}
然后它在外部再次起作用但在内部不起作用。有办法解决这个问题吗?
我知道在使用 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);
}
});
是否可以用 Node.js 和 axios 实现类似的东西?
您可以使用没有实际主机和端口的路径。
example() {
axios.get (
// just the path without host or port
"/example", {
params : {
arg01: "nothing"
}
}
)
.then (
result => console.log(result)
)
.catch (
error => console.log(error)
);
}