我正在尝试将我的Ionic应用程序与我的服务器连接,但是我发现了一个我无法找到解决方案的错误。
我已经在chrome上打开了一个CORS插件,但它仍无效。它适用于Postman,但不适用于此。
我使用Node作为后端,Ionic作为前端。
这是我的user.ts
import { HttpClient } from '@angular/common/http';
getCities(){
return this.http.post('http://localhost:3000/cities', {
country: 'Brazil'
})
.subscribe(response => {
console.log('response',response);
}
}
这是我的服务器
app.post('/cities',function(req,res){
var options = { method: 'POST',
url: 'http://www.webservicex.net/globalweather.asmx',
qs: { WSDL: '' },
headers:
{ 'cache-control': 'no-cache',
'content-type': 'text/xml',
},
body: '<?xml version="1.0" encoding="utf-8"?>\r\n<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">\r\n <soap12:Body>\r\n <GetCitiesByCountry xmlns="http://www.webserviceX.NET">\r\n <CountryName>Brazil</CountryName>\r\n </GetCitiesByCountry>\r\n </soap12:Body>\r\n</soap12:Envelope>'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
res.send(body);
res.end();
});
});
它登录我的服务器控制台,但不在客户端。 这是从客户端返回的错误。
HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:3000/users", ok: false, …}
headers : HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
"Http failure during parsing for http://localhost:3000/cities"
name : "HttpErrorResponse"
ok : false
status : 200
statusText : "OK"
url : "http://localhost:3000/cities"
有谁知道任何解决方案? 你有更好的方法来处理这段代码吗?我已经在标题上尝试了access-control-allow-origin但没有。
正如我一直在学习,如果你找到解决方案,我会感谢你的解释。
谢谢!