【发布时间】: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->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