我正在从android上的离子项目测试中调用本地API,但它显示Http响应状态代码0未知错误我确实在寻找许多解决方案,但无济于事。
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Credentials", "true",);
res.header('Access-Control-Allow-Headers', 'Origin, X-Auth-Token, Accept, Content-Type, Authorization, Content-Length, X-Requested-With, x-access-token, Access-Control-Request-Method, Access-Control-Request-Headers');
next();
});
方法请求API。
async loginWithFacebook(data) {
console.log("api USER data from facebook ");
console.log(data);
let headers = new HttpHeaders({
'Content-Type': 'application/json'
});
let options = {
headers: headers
};
return await (this.http.post(environment.endpoint + "/users/facebook-login", data, options)).toPromise();
}
由于某种原因无法调用API。
答案 0 :(得分:-1)
您只是将标头分配给HTTP响应,这将无法帮助您处理请求的CORS。执行以下操作可能会有所帮助。
使用终端在服务器根目录中安装cors软件包。
npm i cors
将cors导入到您的app.js(服务器的根文件)中。
const cors = require('cors')
为您的应用使用cors。
app.use(cors())
您的最终代码应如下所示。
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})