Symfony $ request-> isXmlHttpRequest()问题

Dzi*_*mid 11 jquery symfony1

我需要检查请求是否是ajax.$request->isXmlHttpRequest()工作正常,但是如果在执行期间某处有重定向,则此方法将返回false.在这种情况下,如何检查请求是否为ajax?ps ajax是由jQuery发起的

pro*_*son 8

如果您没有重定向到项目中的其他应用程序或其他外部uri,则只需在第一个请求中使用isXmlHttpRequest为true时使用forward.


那个方法检查X-Requested-with头的值,并且在一些浏览器实现中,从重定向的请求(FF到名称一)中删除/覆盖头(或所有原始头).

作为一种解决方法,您可以在请求本身中使用变量.您可能可以使用现有的sf_format基础架构,但我不确定这是否可行,因为我不熟悉它在内部的工作方式.


小智 8

有些js库不会在头文件中发送XmlHttpRequest值,juste会在你的脚本中添加它:

xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
Run Code Online (Sandbox Code Playgroud)