как убрать ошибку 403 из ajax в методе поста laravel - PullRequest
0 голосов
/ 23 сентября 2018

Проблема с моим кодом заключается в том, что, если я пытаюсь отправить данные через ajax, это выдает мне ошибку, однако другие мои почтовые формы работают нормально. Так что я уверен, что ошибка должна быть либо в маршруте, либо в группе маршрутов, либо в полях csrf. Я пыталсяположить файл csrf в форму, в кнопку удаления, в тег ввода как скрытый, в заголовок, но монахиня работает. Код отлично работает на моем компьютере, но на сервере он дает 403 Запрещено. Прошло 4 дня. Пожалуйста, предоставьте вашу ценную информацию ипредложения.

       <!DOCTYPE html>
        <html>
        <head>
        <meta name="csrf-token" content="{{ csrf_token() }}" />
        <title></title>
        <style type="text/css" media="screen">


        </style>
        <script src="{{asset('js/admin_update_ajax.js')}}"></script>
        <link href="{!! asset('css/table_layout.css') !!}" media="all" rel="stylesheet" type="text/css" />
        </head>
        <body>

        <table class="table">
        <thead>
        <tr>
        <th style="text-align:center">Id</th>
        <th style="text-align:center">Extra Details</th>
        <th style="text-align:center">Update</th>
        <th style="text-align:center">Delete</th>
        </tr>
        </thead>
        <tbody>
        <?php foreach ($details as $value): ?>
        <tr>
        <td style="font-weight: bold">{{ $value->id }}</td>

        <td>{{ $value->extra_detail }}</td>
        <td> <button class="btn btn-success btn-md" data-toggle="modal" data-target="#modalForm">Update</button></td>
        <td><button type="button" class="btn btn-danger">Delete</button></td>
        </tr>
        </tr>
        <?php endforeach ?>
        </tbody>
        </table>


        <div class="modal fade" id="modalForm" role="dialog">
        <div class="modal-dialog">
        <div class="modal-content">
        <!-- Modal Header -->
        <div class="modal-header">
        <h4 class="modal-title" id="myModalLabel">Contact Form</h4>
        <button type="button" class="close" data-dismiss="modal">
        <span aria-hidden="true">&times;</span>
        <span class="sr-only">Close</span>
        </button>

        </div>

        <!-- Modal Body -->
        <div id="showmessage">
        <div class="modal-body">
        <p class="statusMsg"></p>
        <div id="hidebody">
        <form role="form" id="update_form" method="POST">
        <input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">

        <div >Id:<span id="idfromtable"></span></div>
        <div class="form-group">
        <label for="starting_date">Starting Date</label>
        <input type="date" class="form-control" id="starting_date" placeholder="Enter starting date">
        </div>
        <div class="form-group">
        <label for="ending_date">Ending Date</label>
        <input type="date" class="form-control" id="ending_date" placeholder="Enter Ending date">
        </div>
        <div class="form-group">
        <label for="extra_details">Extra Details</label>
        <textarea  class="form-control" id="extra_detail" placeholder="Enter Ending date"></textarea>
        </div>
        </form>
        </div>
        </div>
        </div>
        <!-- Modal Footer -->
        <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary submitBtn" onclick="submit_update_form()">SUBMIT</button>
        </div>
        </div>
        </div>
        </div>
        </body

        > Blockquote

Код Java-скрипта:

function submit_update_form(){

        var starting_date = document.forms["update_form"]["starting_date"].value;
        alert(starting_date);
        var ending_date = document.forms["update_form"]["ending_date"].value;
        alert(ending_date);
        var extra_detail = document.forms["update_form"]["extra_detail"].value;
        alert(extra_detail);



        $.ajax({
        type: "POST",
        headers: {
            'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
        },
        url: "/check",
        data: {
        id:id,
        table_name:table_name,
        exam_name:exam_name,
        link:link,
        extra_detail:extra_detail

        },
        success: function(resultData) { alert(resultData) }
        });

        alert("update end from modal");
        }

Вот мой файл маршрута

Route::post('/check', 'AdminController@index');

Мой контроллер

public function index()
{

    return "Data Inserted Successfully In Table ";
}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Добавьте следующий код

<script>
    $(function () {
        $.ajaxSetup({
            headers: {
                'X-CSRF-Token': "<?php echo csrf_token() ?>"
            }
        });
    });
</script>
0 голосов
/ 23 сентября 2018

Вы должны передать csrf-token в заголовки запроса.

$.ajax({
    type: "POST",
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    url: "/check",
    data: {
        id:id,
        table_name:table_name,
        exam_name:exam_name,
        link:link,
        extra_detail:extra_detail
    }
...