![](/img/trans.png)
[英]Ajax request returns 200 OK, but an error event is fired instead of success
[英]jQuery Ajax request to Struts2 action class always returns 200 ok, but error event is fired
我是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,但始終警告“錯誤”。 我提到了許多文章,但仍未得到適當的解決方案
您在執行ajax請求時發送結果redirect
。 Ajax請求不會將您重定向到另一個位置,它會在請求時保留在同一頁面上。
更改
<result name="success" type="redirect">
至
<result name="success" type="dispatcher">
dispatcher
是默認結果類型,它將在指定位置呈現JSP並將響應HTML寫入out。 可以使用jQuery輕松地將此響應加載到同一頁面上的任何div
。
是的,您可能會得到響應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);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.