2013-03-20 61 views
0

獲取onComplete方法後,我發現我的responseJSON變量看起來並不包含我期望的信息。這是我搞砸的地方(可能),或者某些工作不正常? FineUploader識別上傳成功,所以我知道它獲取響應,但是當我在onComplete中記錄responseJSON時,它會打印出「responseJSON:」。只是文件名。沒有大括號,括號等FineUploader responseJSON不包含onComplete回調中的成功

客戶端代碼

uploader = new $("#collaboration-fine-uploader").fineUploader 
     autoUpload: false 
     multiple: false 
     validation: 
      allowedExtensions: ['pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx'] 
      sizeLimit: 1024*1024*1024*10 # 10MB 
     text: 
      uploadButton: "<i class='icon-plus icon-white'></i> Select Files" 
     request: 
      endpoint: "/files/discussions/collaborations/upload" 


    uploader.on "complete", (id, fileName, responseJSON) -> 
     console.log "responseJSON: "+responseJSON 
     if (responseJSON.success) 
      discussionId = responseJSON.discussionId 
      $.ajax 
       type: "GET" 
       url: "/courses/"+serverData.course._id+"/discussions/"+discussionId 
       beforeSend: (xhr) -> 
        xhr.setRequestHeader 'x-pjax', 'true' 
       success: (html) -> 
        # Replace the old html 
        $(".discussions-tab").html html 
        $(".new-discussion").slideUp() 
        $("#new-discussion-modal").deactivateModal() 

        # History push 
        window.history.pushState window.history.state, "Discussions", "/courses/"+serverData.course._id+"/discussions/"+discussionId 

        # Scroll to top 
        $.scrollTo 0 

服務器端的響應代碼(只是必要部分)

response = 
    "success": true 
    "discussionId": discussion.id 
console.log JSON.stringify response 
res.send JSON.stringify response 

編輯:我還添加了一個日誌到FineUploader -3.3.0.js文件,並且它正在接收正確的JSON對象,但由於某種原因它只是無法正確傳回。

回答

1

onComplete方法的第一個參數實際上是事件,所以你真的引用fileNameresponseJSON。如果你改變你的方法參數來包含事件,我認爲這應該工作。

uploader.on "complete", (event, id, fileName, responseJSON) 
+0

完美,謝謝。 – TJC 2013-03-20 16:57:11

相關問題