我如何使用 jquery post JavaScript 数组到 Laravel 控制器

How I can post JavaScript array to Laravel's Controller using jquery

我有一个像下面这样的数组

var a = [
        {
            "start":"2015-01-12T00:00:00.000Z",
            "allDay":false,
            "promotion_option":"banner"
        },
        {
            "start":"2015-01-13T00:00:00.000Z",
            "allDay":false,
            "promotion_option":"banner"
        }
    ];

我 post 数组对象如下使用 JQuery Ajax

$.ajax({
    type: method,
    url: url,
    data: a,
    success: function(res) {
        var message = res.mesg;

        if (message) {
            $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300);
        };
    }
});

在我的控制器中,当我尝试 dd(Input::all()) 时,它只是 return

array(1) {
  ["undefined"]=>
  string(0) ""
}

那么,我怎样才能获得我 posted 的价值?

尝试 JSON.stringify(a) 将它转换成这样的东西

"[{"start":"2015-01-12T00:00:00.000Z","allDay":false,"promotion_option":"banner"},{"start":"2015-01-13T00:00:00.000Z","allDay":false,"promotion_option":"banner"}]"

请注意,无论您在何处收到 httprequest,它都会在您的后端将其转换为字符串,您只需将其保存在 mind.Hope 中,这有助于

您需要将数据作为对象传递并使用 dataType:'json',就像您在成功回调中使用 res.mesg 一样,

$.ajax({
    type: method,
    url: url,
    data: {a:a},//<== use object here
    dataType:'json',// add this, as you are using res.mesg
    success: function(res) {
        var message = res.mesg;
        if (message) {
            $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300);
        };
    }
});