laravel框架下 發送ajax,delete請求.報錯 methodnotallowed,及解決辦法

代碼:

<script>

        let _token = "{{ csrf_token() }}";
        console.log(_token);
        $('.del').on('click',function (evt) {
            // evt.preventDefault();
            //獲取相關信息
            let url = $(this).attr('href');
            let type = 'DELETE';
            let data = {_token};
            console.log(_token);
            $.ajax({
                url,
                type,
                data
            }).then(function (value) {
                console.log(value);
                $(this).parents('tr').remove();
            });
            // return false;
        })
    </script>

錯誤信息:
在這裏插入圖片描述
明明自己發送的是delete請求,結果瀏覽器給我發送的是 get請求

在這裏插入圖片描述

原因: 是因爲 a 標籤的href 屬性,沒有被禁止.

在這裏插入圖片描述

解決辦法:
代碼:

<script>

        let _token = "{{ csrf_token() }}";
        console.log(_token);
        $('.del').on('click',function (evt) {
            evt.preventDefault();
            //獲取相關信息
            let url = $(this).attr('href');
            let type = 'DELETE';
            let data = {_token};
            console.log(_token);
            $.ajax({
                url,
                type,
                data
            }).then(function (value) {
                console.log(value);
                $(this).parents('tr').remove();
            });
            // return false;
        })
    </script>

圖片:
在這裏插入圖片描述
路由:web.php中
在這裏插入圖片描述

總結:
1.方法不允許優先檢查 csrf 跨站請求僞裝是否屏蔽?
沒有屏蔽,那麼 要將_token 攜帶過來,
2.路由是否匹配
3.本次的問題點是 href屬性的行爲沒有被禁止,那麼就會發送get請求.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章