gpt4 book ai didi

java - DWR 远程调用未设置值为 XMLHttpRequest 的 X-Requested-With 请求 header

转载 作者:太空宇宙 更新时间:2023-11-04 14:08:54 27 4
gpt4 key购买 nike

我们使用 spring dwr 实现来执行 ajax 调用。 dwr_provider_xml 的片段看起来像...

<bean id="remoteClass"
class="x.y.z.RemoteImpl">
<dwr:remote javascript="AjaxSessionManager">
<dwr:include method="testMethod" />
</dwr:remote>
</bean>

Javascript 调用:

if ( AjaxSessionManager != undefined  ) {
AjaxSessionManager.testMethod();
}

在服务器端,我们有一些通用代码来检查此调用是否是 ajax 调用并执行一些额外的步骤。

private static final String XMLHTTPREQ = "XMLHttpRequest";
public static boolean isAjaxCall(HttpServletRequest request) {
return XMLHTTPREQ
.equals(request.getHeader("X-Requested-With"));
}

但是这个方法永远不会返回 true,当我通过 Fiddler 跟踪时,请求 header 没有被发送。我相信 jQuery、dojo 和其他流行框架默认设置了这个。我们是否必须明确地为 DWR 定义一些东西?如有任何帮助,我们将不胜感激。

最佳答案

我找到了解决方案。 DWR 提供了一个要传递的 headers 选项,所以我的方法调用现在看起来像这样......

AjaxSessionManager.testMethod({callback:{},
headers: {'X-Requested-With':'XMLHttpRequest'}
);

关于java - DWR 远程调用未设置值为 XMLHttpRequest 的 X-Requested-With 请求 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com