Ionic/Angular HTTP post 请求在 android 上不起作用

Posted

技术标签:

【中文标题】Ionic/Angular HTTP post 请求在 android 上不起作用【英文标题】:Ionic/Angular HTTP post request not working on android 【发布时间】:2021-04-10 09:10:09 【问题描述】:

我在浏览器中进行测试时使用了 Angular HTTP,它运行良好,但在实际的移动设备上却不行……显然 HTTP angular 在移动设备上不起作用,我不得不将发布请求转换为 ionic native HTTP。我不确定它是否正确转换以及问题是什么...... 此外,获取请求工作正常只是发布请求不起作用。 希望有人可以帮助我。 提前致谢!

我的代码: 角度 HTTP 发布请求

senduserdata(username)
    var dataToSend = 
      username:this.Username,
      password:this.Password,
      usertype:this.getSelectedSubject,
    

    var url = 'https://mylink.herokuapp.com/login';

    this.http.post(url,data:JSON.stringify(dataToSend),responseType: 'text').subscribe(
      (data)=>
        alert(data);
        if(data === "Logged In Successfully!")
        
          this.LoginCustomer();
          this.cartservice.setUsernameCustomer(this.Username);
        
        else if(data === "Welcome!")
        
          this.LoginStaff();
          this.cartservice.setUsernameStaff(this.Username);
        
      
    ) 
  

离子高级 HTTP 发布请求

senduserdata()
    var dataToSend = 
      username:this.Username,
      password:this.Password,
      usertype:this.getSelectedSubject,
    

    var url = 'https://mylink.herokuapp.com/login';

    this.http.post(url,data:JSON.stringify(dataToSend),responseType: 'text').then(
      (data)=>
        this.message= JSON.parse(data.data);
        alert(this.message)
    
        if(this.message === "Logged In Successfully!")
        
          this.LoginCustomer();
          this.cartservice.setUsernameCustomer(this.Username);
        
        else if(this.message === "Welcome!")
        
          this.LoginStaff();
          this.cartservice.setUsernameStaff(this.Username);
        
      
    ) 
  

【问题讨论】:

【参考方案1】:

更新 原来它适用于浏览器,因为我使用的是 CORS 转换器扩展, 我只需要添加我的 node.js 文件

app.all('*', function(req, res, next) 
    var origin = req.get('origin'); 
    res.header('Access-Control-Allow-Origin', origin);
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
);

var app = express();
var cors = require('cors');
app.use(cors())

【讨论】:

以上是关于Ionic/Angular HTTP post 请求在 android 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Ionic + Angular POST 请求返回状态 404

Ionic2,Angular2:如何在使用 http get 进行 REST API 服务调用时避免 CORS 问题?

Ionic 2 / Angular 2 / CORS:HTTP 标头未随请求一起发送

Laravel 5 CORS 问题与 Ionic Angular

ionic/angular2 - 拒绝应用来自 'http://localhost:8100/build/main.css' 的样式,因为它的 MIME 类型('text/html')不受支持

Foreach Json 结果 Ionic Angular