我正在尝试通过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);
});
答案 0 :(得分: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);
});
更多信息: How can I post data as form data instead of a request payload?
答案 1 :(得分:0)
尝试:
var postData = { csrf_token: $("input:hidden[name='csrf_token]").val() };
这基本上和你的jquery ajax调用一样。您可能还想摆脱headers
中的$http.post()
。