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

laravel 5中的Ajax post请求返回错误500(内部服务器错误)

周云
2023-03-14

这是我在laravel 5中的测试ajax(参考下面)

$("#try").click(function(){
    var url = $(this).attr("data-link");
    $.ajax({
        url: "test",
        type:"POST",
        data: { testdata : 'testdatacontent' },
        success:function(data){
            alert(data);
        },error:function(){ 
            alert("error!!!!");
        }
    }); //end of ajax
});

以及触发链接

<a href="#" id="try" data-link="{{ url('/test') }}">Try</a>

我的路线呢

Route::post('test', function()
{
    return 'Success! ajax in laravel 5';
});

但它给我一个错误,当我在谷歌chrome运行控制台,它不返回预期的响应返回成功!Ajax在laravel 5';"

邮递http://juliver.laravel.com/test500(内部服务器错误)

我的代码有什么问题?我遗漏了什么?

共有3个答案

司寇祺
2023-03-14

我想这个问题现在已经解决了,但最好的办法还是把代币和你的表格一起寄出去

{!! csrf_field() !!}

然后在你的ajax中

$("#try").click(function(){
var url = $(this).attr("data-link");
$.ajax({
    url: "test",
    type:"POST",
    data: { '_token': token, 'someOtherData': someOtherData },
    success:function(data){
        alert(data);
    },error:function(){ 
        alert("error!!!!");
    }
}); //end of ajax
});
严正初
2023-03-14

90%的laravel ajax内部服务器错误是由于缺少CSRF令牌造成的。其他原因可能包括:

  • 错误的请求类型(例如发送邮件获取)
  • 收到错误的数据类型(例如Ajax正在等待JSON和应用程序返回字符串)
  • 您的. htaccess配置错误
  • 失踪路线
  • 代码错误

您可以在此处进一步了解这方面的详细信息:https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal-server-error/

丌官昊天
2023-03-14

虽然这个问题存在了一段时间,但没有得到公认的答案,我想向你们指出解决办法。因为您使用ajax发送,并且可能仍然使用CSRF中间件,所以需要在请求中提供额外的头。

向每个页面(或主布局)添加元标记:

并添加到javascript文件(或页面内的部分):

$.ajaxSetup({
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  }
});

更多详情见https://laravel.com/docs/master/csrf#csrf-x-csrf-token。

 类似资料:
  • 我的浏览器控制台上有一个错误:“放置http://localhost:8000/post/2 500(内部服务器错误)” 我使用资源控制器和我的路由-路由e::资源('post','PostController'); 此处为更新帖子的资源控制器代码: 这里我的视图代码: Ajax代码: 顺便说一下,我在文件头上使用了元令牌{{csrf_token()}}。但是我在本地主机上发现了500个内部服务器

  • 我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:

  • 在尝试使用Twython进行简单的推特搜索时 我得到了这个错误: 这里可能有什么问题?

  • 我使用REST客户端的PUT请求有问题。我在邮递员中尝试了同样的方法,我得到了一个带有适当错误消息的错误响应。所以我期望在C#-RestSharp请求调用中也是如此。相反,我得到一个500内部服务器错误,与请求。错误异常=null和请求。错误消息=null以及。在有人指责我请求头之前,我确实设置了请求。addHeader(接受,应用/json); 我的代码是这样的 所以现在的反应。我看到的内容是下

  • 问题内容: 这是我在laravel 5中测试的ajax(请参阅下文) 和触发链接 和我的路线 但是当我在google chrome中运行控制台时,它给了我错误,并且未返回预期的响应“在laravel 5中返回’成功!ajax’;” POST http://juliver.laravel.com/test 500(内部服务器错误) 我的代码有什么问题/问题?我缺少什么? 问题答案: 虽然这个问题存在

  • 我使用spring ide在本地机器嵌入式apache服务器上部署了spring boot web应用程序,并访问了一个带有错误令牌的url,在这种情况下,它会返回未经授权的访问错误401和托管异常处理抛出的特定错误消息,而如果我在独立但相同的apache服务器上部署相同的应用程序,它会给我500个内部服务器错误而不是401或任何其他服务器端错误。 我捕获的日志只有以下一行不同: 下面是我用来处理