【问题标题】:How I can post JavaScript array to Laravel's Controller using jquery如何使用 jquery 将 JavaScript 数组发布到 Laravel 控制器
【发布时间】:2015-03-03 22:03:33
【问题描述】:

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

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) ""
}

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

【问题讨论】:

标签: javascript jquery ajax laravel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 2016-12-07
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多