博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用XMLHttpRequest执行Ajax请求
阅读量:6090 次
发布时间:2019-06-20

本文共 1157 字,大约阅读时间需要 3 分钟。

hot3.png

昨天,一个朋友,问我一个问题:

通过查找网络资源,发现在服务器端识别Ajax请求和一般请求的的方法。大部分说到,通过http请求头中X-Requested-With的值来区分。如此,朋友通过如下代码执行了请求,却始终没有找到这个标志信息:

// 此只作为测试代码var req = new XMLHttpRequest();req.open('GET', 'http://www.baidu.com', true);req.send();
通过firebug,监听到的请求信息中,没有在请求头中发现 X-Requested-With的信息。

分析这个问题:

其实,我们通过js中的XMLHttpRequest,发送的为基本的header信息,如此,怀疑X-Requested-With的这个标志位是自己设置下的。

接下来,我用通过jquery的Ajax进行了一次请求,发现存在这个标志位。接下来为了证明我的思路,去jquery的源码中,查看一下Ajax那段代码,从中找到了我们需要的信息,即:

// X-Requested-With header// For cross-domain requests, seeing as conditions for a preflight are// akin to a jigsaw puzzle, we simply never set it to be sure.// (it can always be set on a per-request basis or even using ajaxSetup)// For same-domain requests, won't change header if already provided.if ( !s.crossDomain && !headers["X-Requested-With"] ) {	headers[ "X-Requested-With" ] = "XMLHttpRequest";}
如此,证明我们的思路是正确的,那么我们如何向XMLHttpRequest请求头中添加这个信息呢?

很简单,查了一下文档,发现这样就可以实现我们的需要了!

// 此只作为测试代码var req = new XMLHttpRequest();req.open('GET', 'http://www.baidu.com', true);// 这里的请求头信息,我们可以自定义的设置req.setRequestHeader('X-Requested-With','XMLHttpRequest');req.send();

转载于:https://my.oschina.net/u/161336/blog/147179

你可能感兴趣的文章
MySQL基础
查看>>
Ghost备份出错导致磁盘空间被占用
查看>>
html标题、段落、换行与字符实体
查看>>
地铁开发进度01
查看>>
远程桌面无法复制粘贴传输文件解决办法
查看>>
微软下周2将发布13个补丁 修复26个安全漏洞
查看>>
一起谈.NET技术,Entity Framework 4.1 推荐英文教程
查看>>
Spring Cloud构建微服务架构:分布式配置中心
查看>>
(2) iOS开发之UI处理-UILabel篇
查看>>
Web 设计师的 50 个超便利工具(下)
查看>>
python txt文件批处理
查看>>
address-already in use 以及查看端口
查看>>
成功搞定一个通用的Extjs增删改查模块
查看>>
OpenHaptics编程环境搭建
查看>>
jquery操作元素的位置
查看>>
暴力屏蔽80访问失败的用户
查看>>
ios面试题收集一(附基本答案)(转)
查看>>
标签栏使用Demo二
查看>>
海量数据和高并发的解决方案
查看>>
软件工程学概述
查看>>