Laravel 5.0 ajax 消息提交返回错误或超时

Posted

技术标签:

【中文标题】Laravel 5.0 ajax 消息提交返回错误或超时【英文标题】:Laravel 5.0 ajax message submission returning error or times out 【发布时间】:2016-02-12 19:17:28 【问题描述】:

目前,我正在尝试使用 ajax 向服务器发送消息(使用即时消息),保存消息并使用消息进行更新。但是,每当我提交它时,它都会返回 500 内部服务器错误,如果我将 token:$('#token') 更改为 '_token' : token,就像我看到的 here 一样,它会完全超时。

ajax

function submitIMchat()
        console.log($('#IMchat-submit-message').val());
        console.log($('#token').val());
        $.ajax(
            url: " action('MessagesController@sendAjaxMessage') ",
            type: "post",
            dataType:'json',
            data: ( token:$('#token'), id: Session::get('IMchatuser') , message:$('#IMchat-submit-message').val() ),
            success: function(data)
                console.log(data);
                return false;
                

        )
        .error(function(data) 
        var errors = data.responseJSON;
        console.log('server errors',errors);
        );
    ;

表格

<form action="#" onsubmit="submitIMchat()">
    <input type="hidden" id="token" value=" csrf_token() ">
    <input id="IMchat-submit-message" type="text" style="width:100%;">
</form>

路线

Route::post('sendAjaxMessage', 'MessagesController@sendAjaxMessage');

谁能告诉我这里的代码有什么问题?如果需要任何其他信息,请告诉我。 注意:我没有包含 sendAjaxMessage,因为它还没有执行该函数。

谢谢。

【问题讨论】:

500 内部服务器错误可能正在回答您的问题。查看日志文件以查看有关触发此错误的更多详细信息。 如果您甚至没有创建 sendAjaxMessage 方法,那么这很可能是问题所在。 @JoachimMartinsen 我已经创建了它,但是它没有执行它。此外,500 Internal Server Error 没有任何信息可以用来识别错误。 @ jquery-1.10.2.min.js:6 x.extend.ajax @ jquery-1.10.2.min.js:6 submitIMchat @ anime:627 onsubmit @ anime:1467 转到你的 Laravel 日志,你的错误将在那里,而不是在请求负载中 @FabioAntunes 我检查了它,但是,今天没有错误 - 最后是昨天,当我在做其他事情时。 【参考方案1】:

我终于解决了这个问题。这与我如何在 sendAjaxMessage 函数中获取变量有关:当我需要使用 Input::all() 获取表单值并将它们设置为单个变量时,我将其视为请求。此外,发送到函数的消息最终被保存为 $message,而创建和保存的 Message 对象也被命名为 $message。因此,$message-&gt;message = $message 会中断。

【讨论】:

以上是关于Laravel 5.0 ajax 消息提交返回错误或超时的主要内容,如果未能解决你的问题,请参考以下文章

如果 $request->ajax() 在 Laravel 中捕获重定向并返回 json 消息

PHP Laravel 4.2 ajax post返回null或空

如何修复 Laravel 5.8 Ajax 表单提交中的内部服务器错误

500 内部错误:加载资源 Laravel 5.0 失败

带有ajax登录的Laravel 5.0 TokenMismatchException

在 Laravel 4 中检索验证器错误消息