我正在使用laravel 5开发一个应用程序,并通过AJAX发送信息,但是如果我想显示FormRequest生成的错误消息?因为在网络浏览器控制台中 - >预览可以看到该错误消息
我的FormRequest CreateRequest
<?php
namespace Cinema\Http\Requests;
use Cinema\Http\Requests\Request;
class CreateRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'genre' => 'required',
];
}
}
我的控制器:
<?php
namespace Cinema\Http\Controllers;
use Illuminate\Http\Request;
use Cinema\Http\Requests;
use Cinema\Http\Requests\CreateRequest;
use Cinema\Http\Controllers\Controller;
class GenreController extends Controller
{
public function store(CreateRequest $request)
{
if ($request->ajax())
{
return response()->json([
'petition' => $request->all()
],200);
}
}
}
我的请愿AJAX:
$("#registro").click(function(){
var data = $("#genre").val();
var route = "http://localhost:8000/genero";
var token = document.getElementById('token').value
$.ajax({
url: route,
headers: {'X-CSRF-TOKEN': token},
type: 'POST',
dataType: 'json',
data: {data : data},
});
});
我可以在控制台中看到消息错误:
但怎么能显示? ,谢谢:D
答案 0 :(得分:0)
仅用于测试目的 - 在视图中有一个空div,其结果为id:
<div id="result"></div>
在ajax .fail上尝试这段代码:
.fail(function(data) {
var errors = data.responseJSON;
var displayErrors = '<ul>';
$.each( errors, function( key, value ) {
displayErrors += '<li>' + value[0] + '</li>';
});
displayErrors += '</ul>';
$('#result').html(displayErrors);
});
就像我在开头所说的那样 - 您可以将 #result div更改为您希望显示错误的位置。
答案 1 :(得分:0)
您的控制器..
<?php
namespace Cinema\Http\Controllers;
use Illuminate\Http\Request;
use Cinema\Http\Requests;
use Cinema\Http\Requests\CreateRequest;
use Cinema\Http\Controllers\Controller;
class GenreController extends Controller
{
public function store(CreateRequest $request)
{
if ($request->ajax())
{
return response()->json([
'petition' => $request->all(),
'success' => true // Add this line as a success flag
],200);
}
}
}
和你的ajax ..
$("#registro").click(function(){
var data = $("#genre").val();
var route = "http://localhost:8000/genero";
var token = document.getElementById('token').value
$.ajax({
url: route,
headers: {'X-CSRF-TOKEN': token},
type: 'POST',
dataType: 'json',
data: {data : data},
success: function(data){
if(typeof data.success === "undefined"){
var errors = data.responseJSON;
var displayErrors = '<ul>';
$.each( errors, function( key, value ) {
displayErrors += '<li>' + value[0] + '</li>';
});
displayErrors += '</ul>';
$('#result').html(displayErrors);
}
}
});
});
和上一个答案一样,您可以添加一个div元素,以显示验证错误。
<div id="result"></div>