Jquery,No X-Requested-With = ajax请求头中的XMLHttpRequest?

Don*_*ong 15 jquery

有些时候,不存在X-请求-随着头,有时有.

我检查了萤火虫,发现了,不知道为什么.

所以当我在django中使用request.is_ajax时,它有时会失败.

谁知道怎么修它?


好的,现在又发生了.我打开页面,然后离开了一会儿了一会儿,当我回来时,又发生了一次.我在firbugs中记录了请求标题:

请求X-Requested-with:

主机localhost:8000
User-Agent Mozilla/5.0(Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.5)Gecko/20091102
Firefox/3.5.5
接受text/html,/
Accept-Language zh-cn, zh; q = 0.5
Accept-Encoding gzip,deflate
Accept-Charset GB2312,utf-8; q = 0.7,*; q = 0.7
Keep-Alive 300
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://localhost:8000/gallery/
Cookie xxx

没有X-Requested-with的请求:

主机localhost:8000
User-Agent Mozilla/5.0(Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.5)Gecko/20091102
Firefox/3.5.5接受text/html,application/xhtml + xml,application/xml; q = 0.9,/ ; q = 0.8 Accept-Language zh-cn,zh; q = 0.5 Accept-Encoding gzip,deflate
Accept-Charset GB2312,utf-8; q = 0.7,*; q = 0.7
Keep-Alive 300
连接保持活动
Referer http://localhost:8000/gallery/
Cookie xxx

jit*_*ter 8

提供更多信息.你在做什么样的ajax请求?

如果您要提交的表单包含类型文件的输入字段,那么很可能是缺少标题的原因.

由于您无法使用ajax提交文件,因此所有javascript框架都会在内部使用"隐藏的iframe"技巧来完成您的工作.

检查此帖有类似的问题和我的答案.

X-Requested-With标头未在jquery ajaxForm插件中设置


否则,jQuery应该没有理由这样做,因为它总是设置头.如果问题与文件输入无关,请发布相关的代码片段

来自jQuery Source

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");


Lev*_*kon 8

我在版本1.6.2中也遇到了这个问题,特别是当页面空闲了一段时间.扩展抖动的答案,这是在一个地方为每个请求冗余添加X-Requested-With.我把它放在我的母版页面中.希望这会成功.

$(document).ajaxSend(function (event, request, settings) {
    request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
});
Run Code Online (Sandbox Code Playgroud)