Ionic 2 / Angular问题与http post to laravel api

时间:2018-02-18 05:28:55

标签: angular laravel http ionic2 cors

我发现很难向laravel api发送http post请求。 GET方法工作正常,但我在谷歌Chrome控制台

中得到以下错误
  

无法加载http://localhost:8000/api/user/auth:响应   预检请求未通过访问控制检查:否   请求中存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://localhost:8100”   访问。

我正在寻找解决方案已经有2天了。 我在离子官方博客上找到了一篇帖子https://blog.ionicframework.com/handling-cors-issues-in-ionic/ 但它似乎没有帮助。

由于

这是我的代码

authUser(email, pass) {       
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json'
      })
    };
    let data = JSON.stringify(
      {
        "email": email,
        "password": pass
      }
    );
    this.http.post(this.API_URL+'user/auth', data, httpOptions).subscribe(data => {
      if(data['success']) {
        this.user = data['response'];
      } else {
        this.hasError = data['message'];
        console.log(this.hasError);
      }
    });
  }

1 个答案:

答案 0 :(得分:3)

我找到了解决方案 我更改了Content-Type:application / json和数据体,下面是示例

authUser(email, pass) {       
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/x-www-form-urlencoded' //updated
      })
    };
    let data = "email="+email+"&password="+pass+""; //updated

    this.http.post(this.API_URL+'user/auth', data, httpOptions).subscribe(data => {
      if(data['success']) {
        this.user = data['response'];
        console.log(this.user);
      } else {
        this.hasError = data['message'];
        console.log(this.hasError);
      }
    });
  }