当前位置: 首页 > 知识库问答 >
问题:

AJAX函数总是在成功时返回html代码作为响应

桂鑫鹏
2023-03-14

在Laravel5.8项目中,我尝试使用jQueryAjax函数将get请求发送到其中一个项目路由url,响应状态为200,这意味着请求已成功执行,但每次该函数返回当前视图HTML时都会响应

我试图删除我的php函数中的所有代码,只返回一个JSON响应,但仍然得到超文本标记语言我还试图将数据类型更改为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);
            }
        });
    }

将ContentType设置为text时得到的响应:

我希望我会得到一个JSON响应,我试图在函数中返回,但我认为请求没有到达函数,问题出在ajax请求中

共有3个答案

楮庆
2023-03-14

正如JCode所指出的,问题出在添加到路由的中间件中
如同中间件中的case返回false一样,中间件重定向到当前页面,以便在AJAX响应中返回页面HTML代码

段干德泽
2023-03-14

试试这个

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);
     });
汪庆
2023-03-14

尝试从响应中删除中间件。

 类似资料:
  • 问题内容: 在我的前端JavaScript应用程序中,我发出了ajax请求以从服务器获取数据。一旦获得数据,我想将该信息返回给视图。 我该怎么做? 问题答案: 而不是从:返回来传递给函数。

  • 问题内容: 在服务器端,我只是将json-as-dictionary打印到控制台 现在,每当我通过ajax发出发布请求时,控制台都会打印出包含我所需内容的字典。 在客户端,我一直在尝试使用各种方法来基于成功的ajax调用执行一些jquery。我只是意识到这可能是服务器端的错误,即我没有发送任何请求标头来告诉jquery其ajax调用成功。 那么,如何将OK状态发送回给客户以告诉一切一切正常? 为了

  • 我有一个使用swagger UI的swagger标记文档,它总是返回text/html,但应该返回application/json。POST请求和其他类型返回Application/JSON,但这个特定的GET请求不返回。服务endpoint代码正确。如果我将请求更改为POST,它将返回application/json。因此,在swagger中只有type GET不返回正确的类型。有什么想法,如何

  • 问题内容: 嗨,我有一个PHP代码返回一个数组。我希望能够在我的ajax成功函数中使用此数组,但是我不确定如何执行此操作。我尝试了以下方法,但是没有运气。 php代码: js代码: 问题答案: 您应该从服务器以JSON形式返回数据。 的PHP JS

  • 问题内容: 当我警告jsonServerResponse函数返回的值时,尽管从process.php页面返回了JSON,但其值未定义。 我知道问题是异步请求完成之前发出的警报功能,但是我不确定如何解决此问题。任何建议都非常感激:) 问题答案: 好的,我是从其他帖子中弄清楚的。结果可以在成功回调中处理,也可以添加本身是回调函数的参数并将ajax请求的结果应用于回调。 还有gdoron,您所询问的那一

  • 我使用 Visual Studio AWS 扩展是为了使用 Docker 映像模板创建简单的 aws lambda 函数。Docker 映像已生成、标记并最终推送到容器注册表。从那里,我使用容器映像创建一个新的 lambda 函数。但是当我测试它时(在本地使用dotnet lambda调用函数或使用AWS控制台上的测试工具),我得到了 亚马逊Lambda工具。NET核心应用程序(5.3.0)项目主