当自定义http标头设置为发布请求时,Laravel Input :: get('params.id')不起作用

时间:2014-05-15 09:29:43

标签: php angularjs laravel http-headers

我在客户端有角度,在后端有laravel。当我尝试使用input :: get(' params.id')访问发送到laravel的参数时,我得到null: 客户端邮寄请求:

 $http.defaults.headers.post = {'X-CSRF-Token':token};

 $http.post('/projectx/public/provider/products/remove/'+PID,{
                           params:{
                               id:$scope.products[index].id,
                               title:$scope.products[index].title,
                               price:$scope.products[index].price
                           }
                       }).success(function(response){
                            if(response.status){
                                UI.simpleNotify('Product removed!','success');
                            }else{
                                console.log(response);
                                UI.simpleNotify('Error removing product!','error');
                            }
                       }).error(function(){
                            UI.connectionError();
                        });

这是laravel后端代码:

$productId = Input::get('params.productId');

我试过Input :: all();但它返回null。

但是当我删除角度代码上的http自定义标题(' X-CSRF-Token')时,它可以正常工作。

那么您认为问题是什么? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

对于post和put请求,您不应将默认帖子标题设置为对象文字。

$http.defaults.headers.post['X-CSRF-Token'] = token;