客户端无法访问自己的服务器端点
Client side unable to hit its own server endpoint
我有一个 AngularFullStack 项目,我在其中尝试使用以下代码访问我项目的服务器端点,但是问题是调用没有从 angular 客户端到 nodejs服务器。因为这是我的第一个项目,所以我几乎不知道可能会出现什么问题导致这种奇怪的冲突。
客户端:
$http({
method: 'POST',
url: '/api/soapAPIs/soapAPI',
data: request,
headers: {
'Content-Type': 'application/json'
}
})
.then(function(response) {
console.log("response from server is: ", response);
})
.catch(function(error) {
console.log("error in calling server is: ", error);
});
我已经在服务器端安装了 CORS,并在 app.js 中编写了以下代码,但仍然不起作用。
服务器App.js
// Setup server
var app = express();
var cors = require('cors');
//add cors to do the cross site requests
app.use(cors());
服务器端点代码:
export function soapAPI(req, res) {
console.log("SERVER SIDE ", req.body);
res.status(statusCode).json({"status":"success"});
res.send();
}
问题如下:
如果我尝试像这样访问 nodejs 端点 /api/soapAPIs/soapAPI
,浏览器会显示 pending
请求并且它永远不会转到服务器。
当我像这样 http:localhost:9000/api/soapAPIs/soapAPI
为端点添加完全分类的 url 时,它会到达端点,但客户端永远不会收到来自服务器的响应。出于显而易见的原因,我不想在客户端提供完整的分类 URL。
我该如何解决这个问题?如果您需要任何其他 code/information.
,请告诉我
编辑:
通过使用完整的分类路径,服务器端点被命中,但客户端永远不会收到其响应。我在浏览器中收到此错误:
Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/things","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}
您必须使用 res.send()
发回请求
app.post('/api/soapAPIs/soapAPI',function(req,res){
console.log("SERVER SIDE ", req.body);
res.status(statusCode).json({"status":"success"}});
res.send();
})
取消注释以下行:
/*mongoose.connect(config.mongo.uri, config.mongo.options);
mongoose.connection.on('error', function(err) {
console.error(`MongoDB connection error: ${err}`);
process.exit(-1); // eslint-disable-line no-process-exit
});
*/
基本上这会导致您的控制器无法 return 任何响应,因为您的 mongoose 模型正在被引用,但与 mongo 的连接失败。
我有一个 AngularFullStack 项目,我在其中尝试使用以下代码访问我项目的服务器端点,但是问题是调用没有从 angular 客户端到 nodejs服务器。因为这是我的第一个项目,所以我几乎不知道可能会出现什么问题导致这种奇怪的冲突。
客户端:
$http({
method: 'POST',
url: '/api/soapAPIs/soapAPI',
data: request,
headers: {
'Content-Type': 'application/json'
}
})
.then(function(response) {
console.log("response from server is: ", response);
})
.catch(function(error) {
console.log("error in calling server is: ", error);
});
我已经在服务器端安装了 CORS,并在 app.js 中编写了以下代码,但仍然不起作用。
服务器App.js
// Setup server
var app = express();
var cors = require('cors');
//add cors to do the cross site requests
app.use(cors());
服务器端点代码:
export function soapAPI(req, res) {
console.log("SERVER SIDE ", req.body);
res.status(statusCode).json({"status":"success"});
res.send();
}
问题如下:
如果我尝试像这样访问 nodejs 端点
/api/soapAPIs/soapAPI
,浏览器会显示pending
请求并且它永远不会转到服务器。当我像这样
http:localhost:9000/api/soapAPIs/soapAPI
为端点添加完全分类的 url 时,它会到达端点,但客户端永远不会收到来自服务器的响应。出于显而易见的原因,我不想在客户端提供完整的分类 URL。
我该如何解决这个问题?如果您需要任何其他 code/information.
,请告诉我编辑:
通过使用完整的分类路径,服务器端点被命中,但客户端永远不会收到其响应。我在浏览器中收到此错误:
Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/things","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}
您必须使用 res.send()
app.post('/api/soapAPIs/soapAPI',function(req,res){
console.log("SERVER SIDE ", req.body);
res.status(statusCode).json({"status":"success"}});
res.send();
})
取消注释以下行:
/*mongoose.connect(config.mongo.uri, config.mongo.options);
mongoose.connection.on('error', function(err) {
console.error(`MongoDB connection error: ${err}`);
process.exit(-1); // eslint-disable-line no-process-exit
});
*/
基本上这会导致您的控制器无法 return 任何响应,因为您的 mongoose 模型正在被引用,但与 mongo 的连接失败。