2013-10-27 105 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