【问题标题】:native http post in ionic v4ionic v4 中的原生 http 帖子
【发布时间】:2019-10-11 20:30:20
【问题描述】:

在我在设备“android”上部署我的应用程序后,它无法正常工作,因为我使用了 httpclient 并且我遇到了 CORS 问题。 现在我被困了 5 天,试图在本机 HTTP 插件上进行发布请求! ,请记住我使用旧代码中的相同标头和数据,但它一直告诉我“您必须输入用户 ID 并通过”,即使它在发布请求中。

      {'withCredentials': 'true','accept':'*/*','accept-encoding':'gzip, deflate','content-type':'application/x-www-form-urlencoded; charset=UTF-8','user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
  } )
    .then(response => {
      // prints 200
      console.log(response),
      this.raw = response;}, err => {
        console.log('JS call err : ',err);
      });

响应状态是 :200 ,但是是“You Must enter userID and pass”。 我尝试更改用户和传递方法,但没有运气。

首先这是我帖子的控制台日志:

https://aws1.discourse-cdn.com/ionicframework/original/3X/7/c/7cd0165b56aabef6fbcb0340dd39238c5dd59bdd.jpeg

这是来自PC浏览器的帖子,可以比较:

(https://aws1.discourse-cdn.com/ionicframework/original/3X/d/1/d190494f504d230396d3926e09a454d1230df05c.png

最后我确实向https://postman-echo.com/ 发送了帖子请求,这将返回我的有效负载以确保这是帖子:

https://aws1.discourse-cdn.com/ionicframework/original/3X/3/9/3940194b8edd90b3ec8971f308d4ed2d7794ac97.jpeg

【问题讨论】:

  • CORS 是与服务器相关的问题。你必须在你的服务器上启用 CORS。
  • 这与 CORS 无关,因为我使用的是原生 http 插件

标签: ionic-framework ionic4


【解决方案1】:

你可以试试hereionic-native-http-connection-backend

【讨论】:

    【解决方案2】:

    为了解决我的特殊问题, 需要做什么:

    先禁用重定向

    this.http.disableRedirect(true);
    

    然后用新的get请求捕获错误,将你重定向到你想要的页面,因为cookie已经建立

    this.http.get(apiUrl2, {responseType: 'text'}, {});
    

    【讨论】: