簡體   English   中英

POST 400錯誤,ajax請求

[英]POST 400 error, ajax request

為什么我不能保存它,卻得到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);

    }

您可以像這樣在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);
    }
});

只要確保您放置了{!! csrf_field()!!}在您的[view]刀片模板上,以附加$(input [name =“ token”); html標記以獲取令牌值,以獲取CSRF令牌。 希望這可以幫助

試試這個可能對您有幫助

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

在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);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM