【发布时间】:2014-09-26 09:32:33
【问题描述】:
我正在尝试使用 Struts 操作表单发送 Ajax POST。
我已经成功地使用 jQuery 创建了这种调用。
ActionForm:
public class AjaxForm extends ActionForm {
private static final long serialVersionUID = 7403728678369985647L;
private String name = null;
private FormFile uploadedFile = null;
public FormFile getuploadedFile() {
return uploadedFile;
}
public void setFile(FormFile uploadedFile) {
this.uploadedFile = uploadedFile;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Action:
public class AjaxAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
AjaxForm ajaxForm = (AjaxForm)form;
System.out.println("Hello " + ajaxForm.getName());
jQuery Ajax POST(工作):
<script src="/BusinessProcess_Project/jquery.js"></script>
<script type="text/javascript">
function doAjaxPost() {
// get the form values
//var name = $('#name').val();
var formData ={
'name':'jQuery_Oron'
};
$.ajax({
type: "POST",
url: "/BusinessProcess_Project/AjaxSubmit.do",
// data: "name=" + 'jQuery',
data:formData,
dataType: "text/json",
success: function(response){
},
error: function(e){
alert('Error: ' + e);
}
});
}
</script>
AngularJS Ajax POST(不工作):
<script type="text/javascript">
$scope.myShabi = {};
$scope.myShabi.doClick = function(item, event) {
// $scope.init = function(item, event) {
$scope.loading = true;
var formData ={
'name':'Angular_Oron'
};
var responsePromise = $http({
method: 'POST',
url: '/BusinessProcess_Project/AjaxSubmit.do',
data: formData
});
responsePromise.success(function(data, status, headers, config) {
$scope.jsonFromServer = data;
$scope.status ="Finished";
$scope.loading = false;
});
responsePromise.error(function(data, status, headers, config) {
alert("AJAX failed!");
});
};
</script>
由于某种原因,AngularJS 不喜欢我发送 ActionForm 数据的方式。
【问题讨论】:
-
您遇到什么错误?顺便说一句,我认为你应该链接成功和错误,以避免不必要的查找。
var responsePromise = $http(...).success(...).error(...) -
嗨,感谢您的更新,我没有收到错误,只是收到:'Hello null'
-
如果添加
responseType: "json"会怎样? var responsePromise = $http({ method: 'POST', url: '/BusinessProcess_Project/AjaxSubmit.do', data: formData, responseType: "json" }); -
仍然收到“Hello null”
标签: javascript jquery angularjs ajax struts