我如何使用jquery将JavaScript数组发布到Laravel的控制器

时间:2015-01-06 09:03:03

标签: javascript jquery ajax laravel

我有一个类似下面的数组

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"
        }
    ];

我使用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())时,在我的控制器中,它只是返回

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

那么,我如何才能获得我发布的内容的价值?

2 个答案:

答案 0 :(得分:2)

您需要将数据作为对象传递并使用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);
        };
    }
});

答案 1 :(得分:1)

尝试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,它就会将其转换为后端的字符串,您只需记住这一点。希望它有所帮助