我的问题是我有我的页面提交,但我要做的是让它提交回来,并显示任何错误,可能已经从验证下面的适当的形式字段。到目前为止,我的控制台也出现了这个错误。
如果你愿意看一下这一小段代码,看看是否有什么建议的改变来改进它。
"NetworkError: 405 Method Not Allowed - http://myapp.app/createorderfromform"
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
var err = JSON.parse(xhr.responseText);
$("#pageOneSubmission").click(function(event) {
event.preventDefault();
var email = $("input[name=email]").val();
var addons = [];
$('.addon-checkbox:checked').each(function() {
addons.push( $(this).val() )
});
$.ajax({
type: "POST",
url: '{{action('OrderProcessController@createUserAndOrder') }}',
data:
{
email: email,
addons: addons
},
dataType: JSON,
success: function(data) {
if (!data.success) {
console.log("Errors");
} else {
console.log("No Errors");
$("#user-created-confirmation").html(data);
}
},
error: function(xhr, status, error) {
var err = JSON.parse(xhr.responseText);
$.each(err, function(key, value) {
$('input [name=key]').next().append("<p>Test</p>");
});
}
}, function(){
setTimeout(function() {
})
});
});
OrderProcessController
<?php
namespace App'Http'Controllers;
use App'Order;
use Illuminate'Http'Request;
use Sentinel;
class OrderProcessController extends JoshController
{
/*
* Create User After they complete the first part of the form.
*
*/
public function createUserAndOrder(Request $request)
{
$validation = $this->validate($request, [
'email' => 'required|confirmed|unique:users,email',
]);
$credentials = [
'email' => $request->input('email'),
'password' => $request->input('password'),
];
$user = Sentinel::registerAndActivate($credentials);
$user->role()->attach(5);
return response()->json([
'success' => true,
'errors' => null
]);
}
}
更新:
我已经固定了我的路由问题,但我正试图找出如何保持它从移动到下一页的表单向导,如果有一个验证错误的表单字段正在传递。因为当用户来到表单的第一页,没有填写任何字段时,它应该返回错误。因此,我试图找出验证如何将错误传递给ajax请求,以便它可以在输入字段旁边显示相应的错误。
405 Method Not Allowed
exception表示您所请求的HTTP方法的路由不存在。
确保你的路由是post
请求
确保在ajax url中使用的路由已经存在并且它的类型是post。你可以运行
php artisan route:list