在laravel 5.8项目中,我尝试使用JQuery AJAX函数将get请求发送至项目路线url之一,响应状态为200,这意味着请求已成功执行,但每次函数返回当前视图HTML时,响应
我试图删除php函数中的所有代码,仅返回JSON响应,但仍获取HTML,我还尝试将数据类型更改为JSON或文本,并将缓存设置为false,但响应仍然相同,我什至尝试注释路由请求的所有功能,并且总是会出现相同的响应 我还尝试了这里或其他站点提供的许多其他解决方案,但没有办法解决
这是我请求路线的控制器功能:
public function seen()
{
$user = User::find(Auth::user()->id);
$notifications = $user->notification;
foreach($notifications as $notification){
$notification->seen = 1;
$notification->save();
}
return response()->json(['status' => 'seen']);
}
这是功能路线:
Route::get('/seen', 'CustomAuth\AuthController@seen')->middleware('authUser');
最后是AJAX函数:
function seen(){
let url = '/seen';
$.ajax({
type: 'GET',
url: url,
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
将contenType设置为文本时得到的响应:
我希望我会尝试在函数内返回JSON响应,但我认为请求未到达函数且问题在ajax请求内
答案 0 :(得分:0)
尝试从响应中删除中间件。
答案 1 :(得分:0)
尝试
function seen(){
let url = '/seen'; $.ajax({
url: "getusersallapp",
type: 'POST',
dataType: 'json',
data: {
'_token': $('input[name=_token]').val()
},
}).done(function (data) {
console.log(result);
})
.fail(function (xhr, status, error) {
console.log(error);
});
答案 2 :(得分:0)
正如JCode所建议的那样,问题出在添加到路由的中间件之内。
好像中间件中的case返回false一样,中间件重定向到当前页面,因此它以AJAX响应的形式返回页面HTML代码。