Запрещено (готовить CSRF ie не установлено.): - PullRequest
0 голосов
/ 25 марта 2020

Я использую ajax для отправки данных с asp (как фронт) в Django rest api (как бэкэнд). Сначала у меня была проблема с доступом к другому домену, но она была решена с помощью CORS, затем у меня был другой ошибка, связанная с CSRF, и ошибка, описанная выше: Запрещено (CSRF cook ie не установлено.) Я использовал @csrf_exempt для прохождения этой проверки, но я хочу найти решение для его использования без исключения csrf. Я пробовал более одного решения. но это не работает, или, может быть, я не понимаю, как найти решение? ajax В Ошибка 403, '' '

JQuery sends " xhr.send( options.hasContent && options.data || null );

' ''

i ' Я включу код моего .cs html файла ниже

'' '

form id="std_form" class="mx-auto form-horizontal" method="POST" asp-antiforgery="false">
                     @Html.AntiForgeryToken()
                    <div class="box-body">
                        <div class=" form-group">
                            <label for="inputEmail3" class="col-sm-3">ID</label>
                            <div class="col-md-8">
                                <input type="number" id="first">
                            </div>
                        </div>
                        <div class=" form-group">
                            <label for="inputEmail3" class="col-sm-3">ID</label>
                            <div class="col-md-8">
                                <input type="number" id="second">
                            </div>
                        </div>
                        <div class=" form-group">
                            <label for="inputEmail3" class="col-sm-3">ID</label>
                            <div class="col-md-8">
                                <input type="number" id="third">
                            </div>
                        </div>

                    </div>
                    <!-- /.box-body -->
                    <div class="box-footer  d-flex">
                        <button type="submit"  id="save_btn" class="btn-success btn">Save</button>
                    </div>
                    <!-- /.box-footer -->

                </form>
            </div>

' ''

'' '

window.CSRF_TOKEN = "{% csrf_token %}";
    function getCookie(c_name) {
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) c_end = document.cookie.length;
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return "";
    }

'' '

и это ajax запрос

' ''

$(document).on('submit', '#std_form', function (e) {
    e.preventDefault();
    let val1 = parseInt($('#first').val());
    let val2 = parseInt($('#second').val());
    let val3 =  parseInt($('#third').val());
    let x={val1,val2,val3};
    $.ajax({

        type: 'POST',
        url: ('http://127.0.0.1:8000/Callfun/processdata/'),

         data:{
            First: val1,
            Second:val2,
            Third:val3,
           csrfmiddlewaretoken: window.CSRF_TOKEN,
        },  
        success: function (context) {

            alert("Wooooooooowwwww");
            $('#first').val(context.Max);
            $('#second').val(context.Min);
            $('#third').val(context.Avg);
        },
        error: function (context) {

         alert("So Bad");


        }
    })

 })

'' '

...