2014-02-10 47 views
0

我有一個罰款上傳器運行的實現。我在各種不同的瀏覽器/安全組合中遇到以下問題。罰款上傳器返回來自服務器的空響應或錯誤地報告錯誤

問題(CORS請求,兩個非安全域之間) 隨着調試模式上我看到了(什麼樣子)在日誌中的成功響應,但是前端JS繼續拋出一個錯誤。請參閱下面的日誌轉儲。

[FineUploader 3.9.1] Received 1 files or inputs. jquery.fineuploader-3.9.1.js:164 
event.returnValue is deprecated. Please use the standard event.preventDefault() instead. jquery.js:5374 
[FineUploader 3.9.1] Sending upload request for 0 jquery.fineuploader-3.9.1.js:164 
XHR finished loading: "http://mydomain/endpoint.php". jquery.fineuploader-3.9.1.js:5417 
[FineUploader 3.9.1] xhr - server response received for 0 jquery.fineuploader-3.9.1.js:164 
[FineUploader 3.9.1] responseText = Array 
(
    [promo_id] => 136 
    [qquuid] => 8dde1abb-e0b8-4bf2-abbe-14fb7b958c81 
    [qqtotalfilesize] => 3638 
) 
{"success":true,"uploadName":"136\/87fd93e5e656db4c8e239b3f00575a1e.jpg"} jquery.fineuploader-3.9.1.js:164 
[FineUploader 3.9.1] Received response status 200 with body: Array 
(
    [promo_id] => 136 
    [qquuid] => 8dde1abb-e0b8-4bf2-abbe-14fb7b958c81 
    [qqtotalfilesize] => 3638 
) 
{"success":true,"uploadName":"136\/87fd93e5e656db4c8e239b3f00575a1e.jpg"} jquery.fineuploader-3.9.1.js:164 
[FineUploader 3.9.1] Error when attempting to parse xhr response text (Unexpected token A) 

我可以確認文件成功上傳到我的服務器,所以調試數據是正確的。我有點困惑,爲什麼插件不能正確解析響應。我假設調試沒有開啓時,只有JSON數據存在於responseText中,因此處理程序應該能夠正確解析{JSON響應} - 任何人都可以對這裏出現的問題有所瞭解嗎?這是一個實時客戶端項目,正在通過http和https進行。

在此先感謝 Ĵ

回答

0

您的服務器沒有返回一個有效的JSON響應。這可以在Fine Uploader的調試輸出中看到。

這裏是你的服務器返回:

「陣列 ( [PROMO_ID] => 136 [qquuid] => 8dde1abb-e0b8-4bf2阿貝14fb7b958c81 [qqtotalfilesize] => 3638 ) { 「成功」:真實的, 「uploadName」: 「136/87fd93e5e656db4c8e239b3f00575a1e.jpg」} 「

,這是你的服務器應該返回什麼: { 」成功「:真實的, 」uploadName「:」 136 /87fd93e5e656db4c8e239b3f00575a1e.jpg「}」

+0

感謝您的快速響應。我同意這是造成這個問題的原因。我不知道爲什麼數組正在返回。這裏是我的端點的相關部分.php $ result = $ uploader-> handleUpload($ path); echo json_encode($ result); 我需要做任何額外的編碼? –

+0

這個問題可能在你的handleUpload方法的返回值中。你必須返回一個有效的JSON對象,而這顯然不會發生。你需要仔細看看你的服務器代碼中的這個方法。 –

+0

是的,這似乎是如此,但是從基地的這部分邏輯沒有任何改變。我很困惑,在後端的附加數組對象的位置(沒有轉換爲JSON對象)?有任何想法嗎? $ target = $ this-> getUniqueTargetPath($ uploadDirectory,$ name); ($ target){ $ this-> uploadName = basename($ target); if(move_uploaded_file($ file ['tmp_name'],$ target)){ return array('success'=> true,'uploadName'=> $ pid。$ this-> uploadName); } } –

相關問題