当前位置: 首页 > news >正文

ajaxFileUpload plugin上传文件 chrome、Firefox中出现SyntaxError:unexpected token

Html代码

<table id="deploy_application" class="bordered-table">  
  <tr>  
    <td id="application_file">  
      <input id="file_field" type="file" name="application" size="20" />  
    </td>  
    <td id="application_submit">  
      <input id="submit_button" type="submit" value="Upload" onclick="uploadFile()" />  
    </td>  
  </tr>  
</table>  

最近在使用ajaxFileUpload插件做文件上传时,后端返回json格式的数据,js代码如下: 

function ajaxFileUpload() {  
      
  $.ajaxFileUpload  
    (  
      {  
        url: '/upload',  
        secureuri: false,  
        fileElementId: 'file_field',  
        dataType: 'json', //这里选择了json  
              
        success: function (data, status) {  
          alert(data);  
        },  
                  
        error: function (data, status, e) {  
           alert(e);  
        }  
      }  
    )  
}  

结果在chrome和FireFox浏览器出现如下错误: 

网上查了下原因,是因为Server端的Response上加上了contentType="application/json"。但有时后端这么做是必须的,所以修改ajaxFileUpload源码,将<pre></pre>标签去掉,如下: 

Js代码

 1 uploadHttpData: function( r, type ) {  
 2         var data = !type;  
 3         data = type == "xml" || data ? r.responseXML : r.responseText;  
 4         // If the type is "script", eval it in global context  
 5         if ( type == "script" )  
 6             jQuery.globalEval( data );  
 7         // Get the JavaScript object, if JSON is used.  
 8         if ( type == "json" ) {  
 9              以下为新增代码///  
10              data = r.responseText;  
11              var start = data.indexOf(">");  
12              if(start != -1) {  
13                var end = data.indexOf("<", start + 1);  
14                if(end != -1) {  
15                  data = data.substring(start + 1, end);  
16                 }  
17              }  
18               ///以上为新增代码///  
19               eval( "data = " + data);  
20         }  
21         // evaluate scripts within html  
22         if ( type == "html" )  
23             jQuery("<div>").html(data).evalScripts();  
24   
25         return data;  
26     }  

至此,大工告成,ajaxFileUpload的dataType正常使用json。 

转载于:https://www.cnblogs.com/fang645421992/p/4665075.html

相关文章:

  • 《C++编程风格(修订版)》——2.6 动态内存的回收
  • wp-query调用前几篇文章的方法
  • 《思科UCS服务器统一计算》一1.3 统一计算系统(UCS)
  • 从平凡通往伟大——大数据技术学习
  • 《UML面向对象设计基础》—第1章1.7节继承
  • 启动页广告
  • 深入理解Spark:核心思想与源码分析. 3.5 Hadoop相关配置及Executor环境变量
  • Nim各种pragma使用方法
  • 《设计工作室生存手册》—第1章1.8节设计师是守护者
  • iOS Sprite Kit教程之申请和下载证书
  • Xamarin.Android开发实践(八)
  • 《Java并发编程的艺术》一一2.4 本章小结
  • 淘宝开源分布式消息中间件Metamorphosis
  • 《Adobe After Effects CS6完全剖析》——使用用户界面
  • HDU 2222 Keywords Search(AC自动机)
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • bearychat的java client
  • Java,console输出实时的转向GUI textbox
  • Java教程_软件开发基础
  • Redux 中间件分析
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 看域名解析域名安全对SEO的影响
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 微服务核心架构梳理
  • - 转 Ext2.0 form使用实例
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​Spring Boot 分片上传文件
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (4)(4.6) Triducer
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ******之网络***——物理***
  • *1 计算机基础和操作系统基础及几大协议
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .Net core 6.0 升8.0
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET上SQLite的连接
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET正则基础之——正则委托
  • /var/spool/postfix/maildrop 下有大量文件
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • []T 还是 []*T, 这是一个问题
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯