4

我正在尝试通过 Angular.js 发布到启用了 CSRF 的应用程序中的 CodeIgniter 控制器(在同一域上)。使用 jquery,我只需像这样添加令牌:

$.ajaxSetup({
data: {
    csrf_token: $("input:hidden[name='csrf_token']").val()
}

我在 Angular.js 中添加了帖子值和标题,但没有任何乐趣。有谁知道如何做到这一点?

var postData = { name:"csrf_token", value: $("input:hidden[name='csrf_token]").val() };
$http.post('myCIcontroller',postData,{headers: {'csrf_token': $("input:hidden[name='csrf_token']").val()}}).success(function(data){
                console.log(data);
            });
4

2 回答 2

4

这是一个解决方案:

var postData = $.param({csrf_token: $("input:hidden[name='csrf_token']").val()});

$http.post('myCIcontroller', postData, {headers : {'Content-Type': 'application/x-www-form-urlencoded'}}).success(function(data){
            console.log(data);
});

更多信息在这里: 如何将数据作为表单数据而不是请求有效负载发布?

于 2013-06-11T12:21:25.493 回答
0

尝试:

var postData = { csrf_token: $("input:hidden[name='csrf_token]").val() };

这基本上与您的 jquery ajax 调用相同。您可能还想摆脱headersin $http.post()

于 2013-06-10T19:40:15.103 回答