我有一個罰款上傳器運行的實現。我在各種不同的瀏覽器/安全組合中遇到以下問題。罰款上傳器返回來自服務器的空響應或錯誤地報告錯誤
問題(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進行。
在此先感謝 Ĵ
感謝您的快速響應。我同意這是造成這個問題的原因。我不知道爲什麼數組正在返回。這裏是我的端點的相關部分.php $ result = $ uploader-> handleUpload($ path); echo json_encode($ result); 我需要做任何額外的編碼? –
這個問題可能在你的handleUpload方法的返回值中。你必須返回一個有效的JSON對象,而這顯然不會發生。你需要仔細看看你的服務器代碼中的這個方法。 –
是的,這似乎是如此,但是從基地的這部分邏輯沒有任何改變。我很困惑,在後端的附加數組對象的位置(沒有轉換爲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); } } –