判断是否ajax请求原理(关键勿动) 作者:马育民 • 2024-01-26 13:08 • 阅读:10010 # 判断方式一 浏览器,jquery、axios等js框架,发送请求时,会携带 `accept` 请求头,但该请求头的值是不同的 ### 浏览器 浏览器发请求时,发送请求时,携带 `accept` 请求头的值包含 `text/html,`,如下: [![](/upload/0/0/1IX72E8FyR05.jpg)](/upload/0/0/1IX72E8FyR05.jpg) ### jquery、axios jquery、axios 等js框架,发送请求时,携带 `accept` 请求头的值包含 `application/json`,如下: [![](/upload/0/0/1IX72IRCr4sN.jpg)](/upload/0/0/1IX72IRCr4sN.jpg) ### uni-app 携带 `accept` 请求头,其值包含 `application/json` ### 小程序 使用某些小程序发请求,一般会携带 `accept` 请求头,其值包含 `application/json`,具体看该小程序开发文档 ### 跨域时 跨域时,有些小程序发请求,accept头的值是 `*/*`,所以需要 **指定accept头**,**否则无法判断** **uni-app** 携带 `accept` 请求头,但其值是 `*/*`,需要指定该请求头 [![](/upload/0/0/1IX72ISgsV3T.jpg)](/upload/0/0/1IX72ISgsV3T.jpg) # 判断方式二 判断 `x-requested-with` 请求头 ### jquery jquery 发送请求时,会携带 `x-requested-with` 请求头,其值是 `XMLHttpRequest` ### axios axios 发送请求时,**默认不会携带** `x-requested-with` 请求头,所以需要指定携带该请求头,否则无法判断是否ajax ### 浏览器 浏览器 发送请求时,**不会携带** `x-requested-with` 请求头 ### uni-app **不会携带** `x-requested-with` 请求头 ### 小程序 使用某些小程序发请求,**可能** 需要指定 `x-requested-with` 头,具体看该小程序开发文档 ### 跨域时 跨域时,**服务器默认不允许携带该请求头**,所以jquery不会发该请求头 需要 **前端加该请求头**,**后端也需要允许跨域携带该请求头**,否则无法携带 原文出处:http://malaoshi.top/show_1IX72EY3DLiv.html