有时,没有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");

07-24 17:33