【问题标题】:Request empty on laravel side when sending post with angular发送带有角度的帖子时,在 laravel 端请求为空
【发布时间】:2018-03-04 22:41:35
【问题描述】:

我是 Angular 新手,想用 Angular 做一个 POST,然后用 Laravel 5.5 接收它

这是我的 Angular 代码,变量似乎有数据:

onSubmit(form: NgForm): Promise<Item> {
  console.log(form.value);
  return this._http.post('http://api-test.dev/api/items', JSON.stringify(form.value))
  .toPromise()
  .then(res => res.json().data)
  .catch(this.handleError);

}

console.log(form.value); 给我:{name: "12", price: "2"}

Item 对象只有 2 个字段,nameprice

它命中 Laravel 控制器,但 $request 变量为空...

我用 Postman 尝试了同样的 POST,效果很好,所以它一定是 Angular 的。

有什么想法吗?

【问题讨论】:

  • 你的 chrome 开发控制台说什么?当您“发送”实际发送的数据时,XHR 过滤器有什么错误吗?
  • 好吧,Laravel 给我发了一个 FK Not Null 错误,因为我尝试插入一个不能为空的空名称
  • 我说的是this
  • 是的,我也是 :) 好吧,在我的控制器中,我只是执行 return json_encode($request-&gt;all()); 但它返回:[] 无属性(在 chrome XHR 预览中)。如果我在不记录任何内容的情况下运行我的脚本,它会给我一个 500 并带有 SQL FK 错误

标签: javascript php angularjs laravel


【解决方案1】:

我不是那么专业。但我面临同样的问题。这样我就发送了我的数据。

$scope.data = {

        name: 'name',
        email: 'example@gmail.com'
    };
$http.post(uploadUrl, data)
        .success(function(response){
            //execute some code...
        });

它可以帮助你。

【讨论】:

    【解决方案2】:

    我解决了它,包括标题:

    onSubmit(form: NgForm): Promise<Item> {
        const myHeaders = new Headers();
        myHeaders.append('Content-Type', 'application/json');
        const options = new RequestOptions({ headers: myHeaders });
    
    
        return this._http.post('http://api-test.dev/api/items', JSON.stringify(form.value), options)
          .toPromise()
          .then(res => res.json().data)
          .catch(this.handleError);
      }
    

    现在它可以工作了!

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      相关资源
      最近更新 更多