为什么我不能保存,我得到400(错误请求), 并且在标题响应中我得到CSRF令牌无法验证。
$(document).ready(function() {
$("a#copylink").click(function (e) {
e.preventDefault();
var data = $('#campaign-form').serialize();
$.ajax(
{
contentType: "application/json; charset=utf-8",
dataType: 'json',
method: 'POST',
url: 'campaignsave',
data: data,
success: function(data){
alert(data);
}
}
)
});
});
在后端:
public function actionCampaignSave()
{
var_dump($_POST);
}
答案 0 :(得分:1)
你可以在你的ajax调用中传递[headers]参数。
$.ajax({
url : 'campaignsave',
method : 'POST',,
headers : {
'X-CSRF-TOKEN' : $('input[name="token"]').val()
}
dataType : 'json',
data : data,
success : function(response) {
console.log(response);
}
});
请确保您已放置{!!你的[view]刀片模板上的csrf_field()!!}附加$(输入[name =" token"); html标记获取令牌值以获取CSRF令牌。希望这有帮助
答案 1 :(得分:0)
试试这可能会对你有所帮助
$.ajax({
type: "POST",
url: 'campaignsave',
data: {test : data},
success: function(data) {
alert(data);
}
});
答案 2 :(得分:0)
使用ajax上的headers属性传递csrf令牌
$.ajax({
contentType: "application/json; charset=utf-8",
dataType: 'json',
method: 'POST',
url: 'campaignsave',
headers: { 'X-CSRF-TOKEN': 'token' }
data: data,
success: function(data){
alert(data);
}
});