Javascript AngularJS通过本地主机请求ExpressJS
我使用AngularJS x ExpressJS创建了一个Web应用程序,其中我的Javascript AngularJS通过本地主机请求ExpressJS,javascript,angularjs,express,Javascript,Angularjs,Express,我使用AngularJS x ExpressJS创建了一个Web应用程序,其中我的app.js的GET“/”呈现应用程序的index.html 例如,我在我的app.js上获取了/test data,并试图通过localhost:port/test data从AngularJS获取这些测试数据。当这在我的测试环境中工作时,我总是必须将生产环境中的请求URL更改为生产环境的REST 是否有任何方法可以防止在部署期间编辑URL时出现上述问题 示例代码: (app.js) (MySampleServi
app.js
的GET“/”呈现应用程序的index.html
例如,我在我的app.js
上获取了/test data
,并试图通过localhost:port/test data
从AngularJS获取这些测试数据。当这在我的测试环境中工作时,我总是必须将生产环境中的请求URL更改为生产环境的REST
是否有任何方法可以防止在部署期间编辑URL时出现上述问题
示例代码:
(app.js)
(MySampleService.js)
对于URL,只需使用
/testdata
。请求自动知道使用应用程序所在的相同端口。对于您的URL,只需使用/test data
。请求自动知道使用应用程序所在的同一端口。您在此处对服务中的url进行硬编码,`this.sampleURL=“localhost:3000”`@SudhansuChoudhary是否有任何方法可以发送一个声明主机URL的HTTP请求?为您的开发、测试和产品环境设置一个切换条件,返回这三个环境的主机名。根据从切换条件中获得的env值,您可以缝合主机url或服务中所需的任何url。但是,您可以使用“location.hostname”来获取主机名。第一个条件是一种理想的方法,但是第二个条件也不起作用,除非您在这里硬编码服务中的url,`this.sampleURL=“localhost:3000”`@SudhansuChoudhary是否有任何方法可以发送一个声明主机URL的HTTP请求?为您的开发、测试和产品环境设置一个切换条件,返回这三个环境的主机名。根据从切换条件中获得的env值,您可以缝合主机url或服务中所需的任何url。但是,您可以使用“location.hostname”来获取主机名。第一个条件是一种理想的操作方式,但第二个条件却无法实现!在阅读注释后,我尝试了$location.host()+“:”+$location.port()。但我认为这是最简单的处理方法。确实如此!在阅读注释后,我尝试了$location.host()+“:”+$location.port()。但我认为这是最简单的解决方法。
var express = require("express");
var app = express();
var request = require("request");
var port = 3000;
var bodyParser = require("body-parser");
app.use(express.static(__dirname));
app.use(bodyParser.json());
app.get("/", function(request, response) {
response.sendFile(__dirname + "/index.html");
});
app.get("/test-data", function(req, res, next) {
var returnValue = [
{
username : "MAIK",
fullname : "Michael"
},
{
username : "CLARK",
fullname : "Clark"
},
{
username : "ROLLY",
fullname : "Roland"
},
{
username : "FLOYDIE",
fullname : "Floyd"
},
{
username : "ZOE",
fullname : "Zoe"
}
];
res.send(returnValue);
});
app.listen(port, function() {
console.log("Listening to port " + port + "...");
});
.service("MySampleService", function($http) {
this.sampleURL = "localhost:3000";
this.getTestData= function(){
return $http
(
{
method : "GET",
url : "http://" + this.sampleURL + "/test-data
}
);
};
});