2017-03-26 316 views
0

爲什麼不能保存這個,我得到400(錯誤的請求), 和頭上的響應我得到CSRF令牌無法驗證。POST 400錯誤,ajax請求

$(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

你的CSRF令牌在哪裏被傳遞? –

+0

在請求有效載荷中顯示csrf_token = 1b7c4749ebc8e6b0a8cb47f17ba902c9f7bf3976&Campaign%5Bname%5D = –

+0

是它應該在哪裏?我如何將它傳遞給標題 –

回答

0

通CSRF令牌頭像]參數在你的ajax調用中這個。

$.ajax({ 
    url : 'campaignsave', 
    method : 'POST',, 
    headers : { 
     'X-CSRF-TOKEN' : $('input[name="token"]').val() 
    } 
    dataType : 'json', 
    data : data, 
    success : function(response) { 
     console.log(response); 
    } 
}); 

只要確保你的地方{!您的[查看]刀片模板上的csrf_field()!!}添加$(input [name =「token」); html標記來獲取令牌值以獲得CSRF令牌。希望這有助於

+0

它應該去哪裏? –

+0

將'X-CSRF-TOKEN'標題添加到標題對象。例如 標題:{'X-CSRF-TOKEN':你的標記在這裏} –

0

嘗試這一點,可以使用Ajax的頭財產

$.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); 
    } 
}); 
1

您可以通過[幫你

$.ajax({ 
        type: "POST", 
        url: 'campaignsave', 
        data: {test : data}, 
        success: function(data) { 
         alert(data); 
        } 
       });