簡體   English   中英

Axios PATCH請求不是ajax

[英]Axios PATCH request is not ajax

我正在做一個 PATCH 請求。 請求通過並按應有的方式返回,但它不是 ajax。

我添加了一個 if 語句來檢查這一點。 怎么可能使用 Axios 而不是 ajax? 我認為 Axios 是一個環繞 ajax 的庫。

有小費嗎?

(嘗試使用 GET 或 POST,結果相同。不是 Ajax)

在 HTML

<button data-id="1">button</button>

在 Javascript 文件中

let button = document.querySelector('button');
button.addEventListener('click', event => {
    let id = button.getAttribute('data-id');
    patchRequest(id);
});
const patchRequest = async (id) => {
    try {
        const response = await axios.patch(`/action/${id}`);
        return response.data.success;
    } catch (err) {
        return console.log(err.response.data);
    }
};

Controller里面

public function __invoke(Request $request)
    {
        // do something and then respond
        if($request->ajax()) {
            return response()->json(['success' => $result], 201);
        } else {
            return 'not ajax';
        }
    }

在 web.php(路由文件)

Route::patch('action/{id}', SomeController::class);

更新

用戶@TJCrowder 幫助發表了評論。

解決我的問題的是添加這個

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

我懷疑ajax方法正在尋找經常用於 ajax 請求的HTTP_X_REQUESTED_WITH axios可能不會設置 header,但如果您願意,可以手動設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM