struts2跨域请求无法得到响应
时间: 2023-05-20 11:03:33 浏览: 291
这个问题可能是由于浏览器的同源策略导致的。你可以尝试使用 JSONP 或 CORS 来解决这个问题。如果你使用 JSONP,你需要在服务器端返回一个包含回调函数的 JavaScript 代码,然后在客户端使用该回调函数来处理响应。如果你使用 CORS,你需要在服务器端设置响应头来允许跨域请求。具体的实现方式可以参考相关的文档和教程。
相关问题
struts mybatis跨域
在使用 Struts 和 MyBatis 的应用程序中处理跨域请求,你可以按照以下步骤进行设置:
1. 在 Struts 的配置文件中(通常是 struts.xml),添加以下配置,允许跨域请求:
```xml
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="crossDomain">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="crossDomainInterceptor" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="crossDomain" />
</package>
```
2. 创建一个自定义的拦截器 `CrossDomainInterceptor`,并在其中设置跨域响应头。可以参考下面的示例代码:
```java
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class CrossDomainInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// 设置跨域响应头
HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type");
return invocation.invoke();
}
}
```
3. 在 MyBatis 的配置文件中(通常是 mybatis-config.xml),添加以下内容以支持跨域请求:
```xml
<configuration>
<!-- 其他配置项 -->
<settings>
<!-- 开启驼峰命名转换 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
```
通过以上配置,你的 Struts 和 MyBatis 应用程序应该能够处理跨域请求了。请注意,这只是一个基本示例,你可能需要根据你的具体需求进行修改和调整。另外,跨域请求可能会引发安全问题,请确保在实际应用中谨慎处理跨域请求。
阅读全文