ajaxfileupload上传文件出现SyntaxError:unexpected token <错误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function ajaxFileUpload() { $.ajaxFileUpload ( { url: uri, secureuri: false , fileElementId: 'upFile' , dataType: 'content' , //这里修改为content success: function (data, status) { alert(data); }, error: function (data, status, e) { alert(e); } } ) } |
结果返回的json数据如猜测,json数据被包含在一个<pre></pre>的标签中.
网上查了下原因,是因为Server端的Response上加上了contentType="application/json"。但有时后端这么做是必须的,
所以修改ajaxFileUpload源码,将<pre></pre>标签去掉,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | uploadHttpData: function( r, type ) { var data = !type; data = type == "xml" || data ? r.responseXML : r.responseText; // If the type is "script", eval it in global context if ( type == "script" ) jQuery.globalEval( data ); // Get the JavaScript object, if JSON is used. if ( type == "json" ) { ////////////以下为新增代码/////////////// data = r.responseText; var start = data.indexOf( ">" ); if (start != -1) { var end = data.indexOf( "<" , start + 1); if (end != -1) { data = data.substring(start + 1, end); } } ///////////以上为新增代码/////////////// eval( "data = " + data); } // evaluate scripts within html if ( type == "html" ) jQuery( "<div>" ).html(data).evalScripts(); return data; } |
或者是在返回的“content”类型数据后
得到 JSON 数据
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步