我是 Struts2 的新手,我将把一组表单数据发送到struts动作类。
这是我在jsp中的Ajax代码
$.ajax({
method: "POST",
url: "getProjectPost",
data: { "language" : langArr , "clientId": clientId, "projectName": projectName, "projectType": projectType},
traditional: true,
success:
function()
{
alert("Success");
},
error:
function()
{
alert("Error");
}
});
这是我的struts.xml
:
<package name="projectPost" namespace="/" extends="struts-default">
<action name="getProjectPost" class="com.test.ProjectPostAction" method="execute">
<result name="success" type="redirect">
<param name="location">/webpages/Client/Success.jsp</param >
</result>
<result name="failure">./LandingPage.jsp</result>
<result name="error">./error.jsp</result>
</action>
</package>
Ajax请求返回200 OK,但始终警告“错误”。我提到了许多文章,但仍然没有得到适当的解决方案
答案 0 :(得分:1)
您在执行ajax请求时发送结果redirect
。 Ajax请求不会将您重定向到另一个位置,它会在请求时保留在同一页面上。
更改
<result name="success" type="redirect">
到
<result name="success" type="dispatcher">
dispatcher
是默认结果类型,它将在指定位置呈现JSP并将响应HTML写入out。可以使用jQuery轻松地将此响应加载到同一页面上的任何div
。
答案 1 :(得分:1)
是的,你可能会得到响应200 OK仍然在ajax请求中执行错误回调,因为来自请求的url的响应是空的。
因此,您必须检查服务器端代码,为什么响应为空或与后端开发人员联系。
要获得更多钙化,您可以使用以下代码。
$.ajax({
method: "POST",
url: "getProjectPost",
data: { "language" : langArr , "clientId": clientId, "projectName": projectName, "projectType": projectType},
success: function(data){
console.log("in success function");
alert("Error:: " + data);
},
error: function(data){
console.log("in error function");
alert("Error :: "+ data);
}
});