AJAX函数始终返回html代码以响应成功

时间:2019-05-20 10:33:57

标签: ajax laravel

在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设置为文本时得到的响应:

Response Headers

我希望我会尝试在函数内返回JSON响应,但我认为请求未到达函数且问题在ajax请求内

3 个答案:

答案 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代码。