簡體   English   中英

對Struts2動作類的jQuery Ajax請求總是返回200 ok,但是會觸發error事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM