我有一个javascript数组,我想通过ajax get方法发送给控制器。
我的javascript看起来像这样:
var requestData = JSON.stringify(commentsArray);
console.log(requestData);
//logs correct json object
var request;
request = $.ajax({
url: "/api/comments",
method: "GET",
dataType: "json",
data: requestData
});
我可以说我的requestData
很好,因为我正在记录它,看起来是正确的。
正在正确访问控制器(我知道这是因为我可以在那里记录信息,我可以返回一个响应,我可以在返回响应后登录我的视图)。
尝试访问requestData
时,我得到一个空数组。
我调用的控制器功能如下:
public function index(Request $request)
{
Log::info($request);
//returns array (
//)
//i.e. an empty array
Log::info($request->input);
//returns ""
Log::info($_GET['data']);
//returns error with message 'Undefined index: data '
Log::info(Input::all());
//returns empty array
return Response::json(\App\Comment::get());
}
我的回复很好。
如何访问requestData
?
答案 0 :(得分:1)
Dave在评论中的解决方案有效:
将ajax请求更改为:
request = $.ajax({
url: "/api/comments",
method: "GET",
dataType: "json",
data: {data : requestData}
});
答案 1 :(得分:0)
这是使用jQuery在数组中 push 的方式:
function ApproveUnapproveVisitors(approveUnapprove){
var arrUserIds = [];
$(".visitors-table>tbody>tr").each(function(index, tr){
arrUserIds.push($(this).find('a').attr('data-user-id'));
});
$.ajax({
type:'POST',
url:'/dashboard/whitelistedusers/' + approveUnapprove,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data: {data : arrUserIds},
success:function(data){
alert(data.success);
},
error: function(e){
//alert(e.error);
}
});
}
这就是我在控制器中访问它们的方式 //批准所有访客 函数ApproveAllWhitelistedUsers(Request $ request){ $ arrToSend = request('data');
foreach ($arrToSend as $visitor) {
$vsitor = User::findOrFail($visitor);
$vsitor->update(['is_approved'=> '1']);
}
return response()->json(['success'=>'Accounts approved successfully!']);
}