如何使用jquery将JavaScript数组发布到Laravel的控制器
如何使用jquery将JavaScript数组发布到Laravel的控制器
我有一个类似以下的数组:\n
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" } ];
\n然后我使用JQuery Ajax将这个数组对象发送了出去:\n
$.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); }; } });
\n在我的控制器中,当我尝试 dd(Input::all())
时,只返回了以下内容:\n
array(1) { ["undefined"]=> string(0) "" }
\n那么,我该如何获取我发送的值呢?
问题的原因是在前端页面中,需要将一个JavaScript数组传递给Laravel的控制器。解决方法是使用jQuery将JavaScript数组转换为字符串,并在后端接收到http请求时将其转换回数组。
首先,我们可以尝试使用JSON.stringify(a)
将JavaScript数组转换为字符串。这样将会得到如下所示的结果:
"[{"start":"2015-01-12T00:00:00.000Z","allDay":false,"promotion_option":"banner"},{"start":"2015-01-13T00:00:00.000Z","allDay":false,"promotion_option":"banner"}]"
需要注意的是,这将JavaScript数组转换为字符串,并在后端接收到http请求时需要将其转换回数组。希望这对您有所帮助。
问题:如何使用jquery将JavaScript数组发布到Laravel的控制器?
原因:需要将数据作为对象传递,并在成功回调中使用dataType:'json'
,因为在res.mesg
中使用了这个。
解决方法:在$.ajax()
中使用以下代码:
$.ajax({ type: method, url: url, data: {a:a},//<== 在这里使用对象 dataType:'json',// 添加这个,因为你使用了res.mesg success: function(res) { var message = res.mesg; if (message) { $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300); }; } });