Ajax 如何在Laravel 5.8中生成如下响应
如果我的ajax请求最终出现验证错误,我会得到这样的响应Ajax 如何在Laravel 5.8中生成如下响应,ajax,validation,laravel-5,Ajax,Validation,Laravel 5,如果我的ajax请求最终出现验证错误,我会得到这样的响应 {"readyState":4,"responseText":"{\"email\":[\"The email field is required.\"]}","responseJSON":{"email":["The email field is required."]},"status":422,"statusText":"Unprocessable Entity"} 如果请求处理成功,则希望生成类似格式的响应。 请详细说明 浏览了
{"readyState":4,"responseText":"{\"email\":[\"The email field is required.\"]}","responseJSON":{"email":["The email field is required."]},"status":422,"statusText":"Unprocessable Entity"}
如果请求处理成功,则希望生成类似格式的响应。
请详细说明
浏览了已经贴在这里的各种答案,但没有一个能帮到我。
谢谢:)因为这只是一个JSON,laravel支持JSON响应,所以您只需返回一个包含数据的数组:
Route::get("/test", function() {
$response = ["email" => ["The email field is required."]];
return [
"readyState" => 4,
"responseText" => json_encode($response),
"responseJSON" => $response,
"status" => 422,
"statusText" => "Unprocessable Entity"
];
});
Laravel将每个数组作为JSON返回,并将Content-Type:application/JSON
头添加到HTTP请求中
上面的示例给出了您的字符串:{“readyState”:4,“responseText”:“{\“email\”:[\“email”字段是必需的。\“]}”,“responseJSON”:{“email”:[“email”字段是必需的。]},“status”:422,“statusText”:“Unprocessable Entity”}
编辑:
要设置状态代码,可以使用response()->json()
如下所示:
Route::get("/test", function() {
$response = ["email" => ["The email field is required."]];
return response()->json($response, 422);
});
response()
返回illumb\Routing\ResponseFactory
的实例,以便您可以查找可能的参数:函数json($data=[],$status=200,数组$headers=[],$options=0)
因为这只是一个JSON,laravel支持JSON响应,所以您只需返回一个包含数据的数组:
Route::get("/test", function() {
$response = ["email" => ["The email field is required."]];
return [
"readyState" => 4,
"responseText" => json_encode($response),
"responseJSON" => $response,
"status" => 422,
"statusText" => "Unprocessable Entity"
];
});
Laravel将每个数组作为JSON返回,并将Content-Type:application/JSON
头添加到HTTP请求中
上面的示例给出了您的字符串:{“readyState”:4,“responseText”:“{\“email\”:[\“email”字段是必需的。\“]}”,“responseJSON”:{“email”:[“email”字段是必需的。]},“status”:422,“statusText”:“Unprocessable Entity”}
编辑:
要设置状态代码,可以使用response()->json()
如下所示:
Route::get("/test", function() {
$response = ["email" => ["The email field is required."]];
return response()->json($response, 422);
});
response()
返回illumb\Routing\ResponseFactory
的实例,以便您可以查找可能的参数:函数json($data=[],$status=200,array$headers=[],$options=0)
这将返回所有内容,包括作为响应一部分的状态,但Laravel的默认验证错误响应返回状态作为标题的一部分。表示当我在网络日志中查看时,只有“email”=>[“email字段是必需的。”]
可见。但是在你的例子中,所有的响应都是可见的。你说你希望你的响应类似,所以我做了类似的。但是可以随意修改数组以返回一些其他数据。我编辑了我的答案,向您展示了如何更改状态代码。这将返回包括状态在内的所有内容作为响应的一部分,但Laravel的默认验证错误响应将状态作为标题的一部分返回。表示当我在网络日志中查看时,只有“email”=>[“email字段是必需的。”]
可见。但是在你的例子中,所有的响应都是可见的。你说你希望你的响应类似,所以我做了类似的。但是可以随意修改数组以返回一些其他数据。我编辑了我的答案,向您展示了如何更改状态代码。