2013-10-27 59 views
3

目前正在使用Spring MVC框架开发dropzone功能。如何获取放置区ajax调用中的JSON响应

这是在控制器类中的方法(我使用的是内部视图解析器)

@RequestMapping(value = "/save", method = RequestMethod.POST, produces = "application/json") 
     @ResponseBody 
     public String save(MultipartHttpServletRequest request, 
       HttpServletResponse response, Model map) { 
//The logic for adding file to db and creation of json object here 
..... 
..... 

userDataJSON = strWriter.toString(); 
return userDataJSON; 

} 

这里是我的悬浮窗的JavaScript上传

Dropzone.options.myAwesomeDropzone = {   

     maxFilesize : 2, 
     addRemoveLinks : true,   
     uploadMultiple : true,   
     init : function() {  
      this.on("addedfile", function(file) {        
       $.ajax({ 
       method : 'get'    
       }).done(function(data, textStatus, xhr) {     
        alert(data); 
        //Expecting the json objec here 

       }); 
      }); 
     } 
}; 

在这里,我没有得到的JSON响应,从控制器。

如果您有任何解决方案,请让我知道。提前致谢。

+0

详细回来,请...使用控制台检查错误并检查ajax请求 – charlietfl

+0

当我们调试并检查日志时,我们在响应中看到了整个html页面,而不是来自控制器的json响应。 – PCA

+0

网址是否正确?除非你有全局设置,否则'$ .ajax'中的url属性看起来很奇怪 – charlietfl

回答

10

我相信在默认情况下,dropzonejs正在对您的文件执行ajax请求。

$("#uploader").dropzone({ 
     url: "/upload.php", 
     maxFilesize: 3, 
     init: function() { 
      this.on("success", function(file, response) { 
       var obj = jQuery.parseJSON(response) 
       console.log(obj); 
      }) 
     } 
    }); 

的URL参数是什么得到通过Ajax调用打,和响应(在执行console.log)是什么,是从/upload.php

+2

如果你的json有效,那么你不需要parseJSON,你可以从它获得直接数据 – Kavin