Fetoris 2019-06-25 09:54 采纳率: 0%
浏览 737

ionic4 post请求返回的数据在浏览器上是json格式,在android真机上返回却是html页面

我的项目是ionic4项目,angular的版本是angular7,写了个登陆页面在浏览器上测试是可以的返回的数据也是json格式,但是拿到手机测试,返回的数据就变成了html页面,内容大概就是项目中index.html中html;
头里面的responseType如果默认是json,那么直接就会报http failure during parsing for .... ,因为返回的是html所以无法解析;将responseType设置成text,就看到了返回是个html页面。

下面贴出部分的代码。。。

http服务

Login(userName: string, password: string) {
        let params = {"request":{"user_name":userName,"password":password,"user_auth":1}};
        const httpOptions ={
            headers:new HttpHeaders({
                'Content-Type':'application/json;chatset=UTF-8',
            }),
        };
        return this.http.post(this.loginUrl,JSON.stringify(params),httpOptions);
    }

页面组件

this.http.Login(username,password).subscribe(
              (data:any)=>{
                  if(data.success=true){
                      this.loginError='成功';
                      alert('登录成功');
                      // sessionStorage.setItem('permission','true');
                      this.router.navigateByUrl('/main');
                  }
                  else if(data.success=false){
                      this.loginError=data.error+'错误';
                      alert('登录失败');
                  }
              },
              error =>{
                  this.loginError="登陆失败"+JSON.stringify(error);
              }

跨域我也做了处理

proxy.config.json文件

图片说明

angular.json文件

图片说明

    最终发现,在浏览器上需要使用跨域处理,但是在android真机上不用,直接将angular.json文件中的proxyConfig删除,http请求的URL直接写全路径,设置的httpOption也要删除。
    然后,重新打包测试,登陆成功了。
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 python天天向上类似问题,但没有清零
    • ¥30 3天&7天&&15天&销量如何统计同一行
    • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
    • ¥15 C#调用python代码(python带有库)
    • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
    • ¥15 活动选择题。最多可以参加几个项目?
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)