ajaxfileupload上傳文件,返回json數據報錯的問題。


在使用ajaxfileupload上傳文件的時候,文件上傳成功了,但是返回的json數據一直解析不了。一直提示:Resource interpreted as Document but transferred with MIME type application/json,從字面上理解返回的是文檔不能轉換為json。但是從服務器那邊返回的response里data-type確實是applicaiton/json。困擾很久,查看ajaxfileupload源代碼發現,其實ajaxfileupload其實使用iframe+form的方式實現異步上傳文件的,如下:
//////////////////////////////////////////////////////////////////
    //穿件form表單函數
    createUploadForm: function (id, fileElementId, data) {
        //create form
        var formId = 'jUploadForm' + id;
        var fileId = 'jUploadFile' + id;
        var form = jQuery('<form action="" method="POST" name="' + formId + '" id="' + formId + '"     enctype="multipart/form-data"></form>');
 
//上傳調用接口
 ajaxFileUpload: function (s) {
        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
        s = jQuery.extend({}, jQuery.ajaxSettings, s);
        var id = s.fileElementId;
        var form = jQuery.createUploadForm(id, s.fileElementId, s.data); //創建form表單
        var io = jQuery.createUploadIframe(id, s.secureuri);//創建Iframe
////////////////////////////////////////////////////////
 
知道了上傳流程,明白了問題出現在哪里了,是用Iframe的時候,返回的時候會添加上html和body標簽。jquery不能直接解析的話,只能自己解析了。
        ajaxfileupload調用的時候dataType不用設置,使用默認text/html.返回的數據作處理:
        var str = $(data).find("body").text();//獲取返回的字符串
        var json = $.parseJSON(str);//把字符串轉化為json對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM