【问题标题】:xhttp.send() get error POST 500 (Internal Server Error)xhttp.send() 得到错误 POST 500(内部服务器错误)
【发布时间】:2017-09-03 02:43:16
【问题描述】:

当尝试将数据发送到服务器时,错误 POST 500(internal server Error ) 显示 这是我的表格

<form class="input-group" id="f">
    <div class="form" style="display :-webkit-inline-box;">
        <input type="text" class="form-control" name="comment" placeholder=" Comment ">
        <span class="input-group-btn">
                 {{--<input class="btn btn-default" type="button" onclick="loadDoc()" value="Comment!">!--}}

            <input class="btn btn-default" type="button" onclick="loadDoc()" value="Comment!">
             </span>
    </div>
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form><!-- /input-group -->

这是javascript代码

    function loadDoc() {
        var dd = document.getElementById('f');
        var d = [];
        r=0;
        for (var i = 0; i < dd.elements.length; i++){
            if(dd[i].type == "text") {
            d[r] = dd[i].value;
            r++;
            }
    }
        var xhttp = new XMLHttpRequest();
        var url = "/place/{{$place->id}}";
        var params = "data="+d;
        xhttp.open("POST", url , true);
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                var json = JSON.parse(this.response);
                console.log(json);
            }
        };
        xhttp.send(params);
    }

我正在尝试发表评论

【问题讨论】:

  • javascript 代码在 JS 文件中吗?您不能在 .js 文件中使用 laravel 刀片语法,它不会解析它。因此,对您的控制器的调用将直接调用/place/{{$place-&gt;id}},而不是您可能认为的调用。应该很容易看到控制台中发生的事情。
  • javascript 代码不在文件中,但在视图中 @JeremyHarris
  • 浏览器控制台在响应中说了什么?使用 Laravel,您应该会在此处看到错误。
  • 这是错误 POST "要打开的文件的 url" 500 (Internal Server Error) 并且 url 是正确的@JeremyHarris
  • 使用此方法,您的 _token 字段不会被添加到 XHR 请求中。如果您的protected $routeMiddlewareGroup 数组使用\App\Http\Middleware\VerifyCsrfToken::class,,则请求将失败。此外,您的 javascript 实现似乎正在尝试重新创建 FormData() 对象所做的事情。试试var d = new FormData(document.getElementById('f'));

标签: javascript php laravel xmlhttprequest


【解决方案1】:

如果你不打算使用 CSRF Token,那就去

App/Http/Kernel.php

并删除或注释行

\App\Http\Middleware\VerifyCsrfToken::class

并且您的 profilem 已解决...否则在该 xhttp 请求中添加 _token 参数...

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2014-08-05
    • 2014-09-24
    • 2020-10-01
    • 2018-01-15
    • 1970-01-01
    相关资源
    最近更新 更多