使用ajax json返回错误的Laravel应用程序


Laravel app with ajax json return issues error

我的问题是我有我的页面提交,但我要做的是让它提交回来,并显示任何错误,可能已经从验证下面的适当的形式字段。到目前为止,我的控制台也出现了这个错误。

如果你愿意看一下这一小段代码,看看是否有什么建议的改变来改进它。

"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