axios发出的请求,怎么判断为是ajax请求

作者

axios是一种对ajax的封装,本身发出的请求,就应该是ajax请求。在使用php做一个项目的时候,进行判断是否是ajax求解的时候,一直失败。解决的办法是对ajax做一下配置。

解决的方法

axios.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest';
axios.defaults.headers.get['X-Requested-With'] = 'XMLHttpRequest';

原理是什么

ajax在发出请求的时候会增加一个http header 用于标识。比如jquery发送ajax请求的时候,就添加了请求 header X-Requested-With

Accept: application/json, text/plain, */*
Content-Type: application/json;charset=UTF-8
Origin: http://www.liuhaolin.com
Referer: http://www.liuhaolin.com/test
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
X-Requested-With: XMLHttpRequest

php判断是不是ajax请求的代码

function is_ajax()
{
    if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest") {
        return true;
    } else {
        return false;
    };
}

回复

电子邮件地址不会被公开。