我应该检查Ajax请求或不
问题描述:
AJAX:我应该检查Ajax请求或不
$.ajax({
type:"POST",
url: "{{url('/post/add')}}",
data: {
"_token": "{{ csrf_token() }}",
"id": id
},
success: function (data) {
var res = $.parseJSON(data);
if(res == true)
{
alert('hi');
}
}
});
Laravel控制器:我已经检查了控制器Ajax请求。
public function add(Request $request)
{
if($request->ajax())
{
// codes
echo json_encode(TRUE);die;
}
}
但是,我注意到我不需要检查ajax请求吗?并且不检查ajax请求如何得到警报?
public function add(Request $request)
{
// codes
echo json_encode(TRUE);die
}
答
该检查只是有效请求的一个额外措施。正如您已经注意到的那样,这并不是必要的,但是如果您希望按照您的预期验证请求是通过AJAX请求发送的 - 您可以。
答
它只是取决于你。您可以根据请求是否是AJAX请求来做不同的事情。例如返回JSON或普通视图。
如果您希望只有AJAX请求才能访问您的路由,那么您可以使用中间件来保护这些路由。有关更多信息,请检查this answer。
+0
即使没有,如果语句我返回JSON响应,它正在运行好。 – Steve
+0
@Steve。是。那是问题吗?请求是一个请求。 Laravel不在乎。如果你愿意,它可以让你接受不同的东西。 –
如果调用是ajax调用,那么如果statment返回一个json响应,否则返回一个视图,在这种情况下,您将能够使用相同的函数来检索json或视图,具体取决于您如何调用函数 –
@Aschraf即使没有,如果陈述我返回JSON响应,它运行良好。 – Steve
我知道,但是如果您有其他视图需要相同的数据,但不使用ajax访问数据呢?你会做什么?你会检查它是否不同于ajax,然后返回一个视图,即时说什么,如果你只是使用这个Ajax然后你不需要添加if语句 –