在 Struts 1 中使用 AngularJS 进行 Ajax POST [英] Using AngularJS for Ajax POST in Struts 1

查看:36
本文介绍了在 Struts 1 中使用 AngularJS 进行 Ajax POST的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Struts 操作表单发送 Ajax POST.

I'm trying to send Ajax POST using Struts action form.

我已经成功地使用 jQuery 创建了这种调用.

I've succeeded to create this kind of call using 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;
    }
}

操作:

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(工作):

AngularJS Ajax POST (not working):

    <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 数据的方式.

for some reason AngularJS doesn't like the way I'm sending the ActionForm data.

推荐答案

你应该使用的不是data,而是params :

It is not data that you should use, but params :

...
var responsePromise = $http({
    method: 'POST',
    url: '/BusinessProcess_Project/AjaxSubmit.do',
    // data: formData
    params: formData
});
...

这篇关于在 Struts 1 中使用 AngularJS 进行 Ajax POST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆