2011-03-30 110 views
0

我想執行這個AJAX帖子,但得到一個服務器500錯誤。如果我不發送任何數據,我可以看到它在控制器中設置了中斷點。但是,當我發送數據它doesnt並返回500錯誤。幫幫我?謝謝。

在螢火控制檯,
請求報頭具有Content-Type application/x-www-form-urlencoded; charset=UTF-8 和響應作爲com.hearsay.example.mktpx.ui.action.LoadDefaultsAction.retrieveBenchmark()

代碼:

$.ajax({ 
    type : "POST", 
    url : "loadBenchMark", 
    data : {'ruleset':'1'}, 
    success : function(data) { 
     console.log("success"); 
     }, 
      error:error : function(request, textStatus, errorThrown) { 
     console.log("Error Thrown:" +request.statusText); 
     } 
}); 

動作類別:

public String retrieveBenchmark(int ruleset) { 
    setBenchmarkProductList(retrieveBenchmarkProductList()); 
    return SUCCESS; 
} 

struts.xml中

<action name="loadBenchMark" 
     class="com.hearsay.example.mktpx.ui.action.LoadDefaultsAction" method="retrieveBenchmark"> 
    <result type="json"></result> 
</action> 

回答

1

首先,從該方法中刪除ruleset參數。然後,添加一個實例變量,而不是動作類,有標準的getter和setter方法 - 就像這樣:

private int ruleset // or String, if you're passing String values 

public int getRuleset() { 
    return this.ruleset; 
} 

public void setRuleset(int ruleset) { 
    this.ruleset = ruleset; 
} 

這是參數傳遞給一個Struts動作的方式 - Struts將會調用相應的制定者。請記住使用正確的數據類型 - 不要通過int變量的String值。

+0

嘗試過。沒有工作。 – silpa 2011-03-30 15:13:11

+0

@silpa查看我的更新。 – Tommi 2011-03-30 15:27:52

+0

謝謝。我的實際代碼有許多不同類型的數據(複雜類型)的Ajax調用。我正在嘗試用一個簡單的工具先讓它工作。我想知道代碼中有什麼錯誤。 – silpa 2011-03-30 15:52:55

相關問題