【问题标题】:Using AngularJS for Ajax POST in Struts 1在 Struts 1 中使用 AngularJS 进行 Ajax POST
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多