有时,没有X-Requested-With标头,有时是。
我检查了萤火虫后发现,不知道为什么。
因此,当我在Django中使用request.is_ajax时,有时会失败。
谁知道怎么修它?
好,现在又发生了。
我打开页面,然后吃了很长时间的晚餐,回来后又发生了。我在萤火虫中记录了请求标头:
与X-Requested-with一起请求:
主机localhost:8000用户代理Mozilla / 5.0(Windows; U; Windows
NT 5.2; zh-CN; rv:1.9.1.5)Gecko / 20091102 Firefox / 3.5.5
接受text / html,/接受语言zh-cn,zh; q = 0.5
接受编码gzip,放气
接受字符集GB2312,utf-8; q = 0.7,*; q = 0.7 Keep-Alive 300
使用XMLHttpRequest的连接保持活动X-Requested-
引荐来源http://localhost:8000/gallery/
Cookie xxx
不带X-请求的请求:
主机本地主机:8000
用户代理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
接受字符集GB2312,utf-8; q = 0.7,*; q = 0.7 Keep-Alive 300
连接保持活动
引荐来源http://localhost:8000/gallery/
Cookie xxx
最佳答案
提供更多信息。您正在发出什么样的ajax请求?
如果要提交的表单包含类型为type的输入字段,则很可能是标题丢失的原因。
由于您无法使用ajax提交文件,因此所有javascript框架在内部都使用“ hidden iframe”技巧来为您完成工作。
检查这篇文章有类似的问题和我的答案。
X-Requested-With header not set in jquery ajaxForm plugin
否则,jQuery永远不会设置这种行为,因为它总是设置标头。如果问题与文件输入无关,请发布相关代码段
来自jQuery Source
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");