Laravel 5:Ajax发布500(内部服务器错误)

哈尔内克斯

我正在尝试通过ajax将数据提交到数据库。无需使用ajax,提交文章页面可以正常工作。我添加console.log()只是为了查看是否发生了任何事情,但是却出现了此错误:

POST http:// localhost / laravel-5 / public / articles / create 500(内部服务器错误)

我的代码有什么问题?是JavaScript还是控制器?

编辑:我正在这 laravel.log

C:\ xampp \ htdocs \ laravel-5 \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middleware \ VerifyCsrfToken.php:53中的异常'Illuminate \ Session \ TokenMismatchException'

路线

Route::resource('articles', 'ArticlesController');

控制者

public function store(Requests\ArticleRequest $request)
    {

        $article = new Article($request->all());
        Auth::user()->articles()->save($article);

        $response = array(
            'status' => 'success',
            'msg' => 'Article has been posted.',
        );
        return \Response::json($response);
    }

jQuery的

$(document).ready(function() {
    $('#frm').on('submit', function (e) {
        e.preventDefault();
        var title = $('#title').val();
        var body = $('#body').val();
        var published_at = $('#published_at').val();
        $.ajax({
            type: "POST",
            url: 'http://localhost/laravel-5/public/articles/create',
            dataType: 'JSON',
            data: {title: title, body: body, published_at: published_at},
            success: function( data ) {
                $("#ajaxResponse").append(data.msg);
                console.log(data);
            }
        });
    });

视图

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

<h1>Write a New Article</h1>

<hr>

{!! Form::open(['url' => 'articles', 'id' => 'frm']) !!}
    <p>
        {!! Form::label('title', 'Title:') !!}
        {!! Form::text('title') !!}
    </p>

    <p>
        {!! Form::label('body', 'Body:') !!}
        {!! Form::textarea('body') !!}
    </p>

    <p>
        {!! Form::label('published_at', 'Date:') !!}
        {!! Form::input('date', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!}
    </p>

    <p>
        {!! Form::submit('Submit Article', ['id' => 'submit']) !!}
    </p>
{!! Form::close() !!}

<h3 id="ajaxResponse"></h3>

@if($errors->any())
    <ul>
    @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
    </ul>
@endif

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="{{ URL::asset('assets/js/ArticleCreate.js') }}"></script>

});

马尼克斯

当您通过POST向资源控制器发出请求时,它会自动调用存储方法:

Verb    Path        Action  Route Name
----------------------------------
POST    /articles   store   articles.store

因此,您只需要将ajax网址更改为:

$.ajax({
        type: "POST",
        url: 'http://localhost/laravel-5/public/articles',

当您需要发送会话令牌时,可以添加一个全局元标记,例如您的网站:

<meta name="csrf-token" content="{{ csrf_token() }}">

然后,只需通过ajax的标头添加令牌:

$.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
});

如果您使用的是Form::open()函数(LaravelCollective),它将添加一个隐藏的输入,其令牌的名称为name _token因此,您可以删除元标记并像这样编辑ajax的标头:

$.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('[name="_token"]').val()
        }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

laravel 5中的ajax发布返回错误500(内部服务器错误)

Laravel 5:Ajax发布500(内部服务器错误)错误

Laravel 5 Ajax内部服务器错误500

Laravel 5 App-AJAX发布请求不接受令牌并引发500个内部服务器错误

错误500(内部服务器错误)ajax和laravel

错误 Ajax 和 Laravel 500(内部服务器错误)

500 Ajax调用中的内部服务器错误(Laravel)

Laravel 500 内部服务器错误 Ajax

Laravel AJAX之类的按钮500(内部服务器错误)

500(内部服务器错误)ajax和laravel

Laravel Ajax捕获500内部服务器错误

POST 500(内部服务器错误)-Laravel和Ajax

内部服务器错误 500 Laravel 5.4 AJAX

Ajax中的Laravel 5 X-CSRF-TOKEN 500(内部服务器错误)

使用laravel 5和ajax将数据发布到数据库时出现500个内部服务器错误

Laravel 500内部服务器错误?

500内部服务器错误AJAX POST请求laravel服务器

laravel ajax呼叫发布/输入给出500/404内部服务器错误,但在本地服务器上有效

Laravel 5.2错误500(内部服务器错误)

Laravel:为什么我的Ajax请求返回“ 500(内部服务器错误)”?

Laravel 4.2和AJAX POST-500内部服务器错误

在Laravel中使用Ajax时出现500内部服务器错误

使用ajax 500内部服务器错误上传Laravel图像

使用Ajax和Laravel时出现内部服务器错误500

Laravel-Ajax调用中出现500(内部服务器错误)

使用 ajax 从 Laravel 5.4 会话中删除项目,响应 500 内部服务器错误

Laravel AJAX POST请求失败(500内部服务器错误

将数据保存到数据库时 Laravel Ajax 500 内部服务器错误

在Laravel 5+ Ubuntu 14.04上出现500个内部服务器错误