IONIC 3和NODE之间的HTTP请求不起作用

时间:2017-12-16 16:33:11

标签: angular http ionic3

我正在尝试将我的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但没有。

正如我一直在学习,如果你找到解决方案,我会感谢你的解释。

谢谢!

0 个答案:

没有答案