JSON

ExtJS文件上传报错:Ext.Error: You're trying to decode an invalid JS

字号+ 作者:H5之家 来源:H5之家 2015-11-10 16:41 我要评论( )

在写一个基于ExtJS、Spring MVC的文件上传组件的时候老是发现报错:Ext.Error: Youre trying to decode an invalid JSON String:pre.../pre。前端ExtJS用到的是Ext.form.field.File这个文件上传组件,使用官方提供的简单例子发现也会报错: Ext.create(Ext.f

在写一个基于ExtJS、Spring MVC的文件上传组件的时候老是发现报错:Ext.Error: You're trying to decode an invalid JSON String:<pre>...</pre>。前端ExtJS用到的是Ext.form.field.File这个文件上传组件,使用官方提供的简单例子发现也会报错:

Ext.create('Ext.form.Panel', { title: 'Upload a Photo', width: 400, bodyPadding: 10, frame: true, renderTo: Ext.getBody(), items: [{ xtype: 'filefield', name: 'photo', fieldLabel: 'Photo', labelWidth: 50, msgTarget: 'side', allowBlank: false, anchor: '100%', buttonText: 'Select Photo...' }], buttons: [{ text: 'Upload', handler: function() { var form = this.up('form').getForm(); if(form.isValid()){ form.submit({ url: 'photo-upload.php', waitMsg: 'Uploading your photo...', success: function(fp, o) { Ext.Msg.alert('Success', 'Your photo "' + o.result.file + '" has been uploaded.'); } }); } } }] });

上面是一个简单的官方提供的例子,上传时报错信息如下:

上传报错信息

图1:上传报错信息

可以看到,其实返回的json字符串都是正常的,只是ExtJS莫名其妙的给加上了<pre></pre>标签,导致无法解析字符串,最终一直处于等待状态。

后来发现是由于后端返回的内容格式是application/json导致,将其改为text/html则正常。我是使用的Spring MVC,修改后的代码配置如下:

@RequestMapping(value = "/importCsv", produces = "text/html; charset=utf-8")

再次测试,正常。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Meteor node.js 复制(copy)文件的方法

    Meteor node.js 复制(copy)文件的方法

    2016-01-25 19:50

  • ExtAspNet应用技巧(二十二) - Ext4JSLint之JSON文件创建树控件(2)

    ExtAspNet应用技巧(二十二) - Ext4JSLint之JSON文件创建树控件(2)

    2016-01-25 09:02

  • Python下如何对JSON文件进行机器学习分析?

    Python下如何对JSON文件进行机器学习分析?

    2016-01-15 19:04

  • 如何使用http协议上传json格式日志

    如何使用http协议上传json格式日志

    2016-01-15 15:15

网友点评
/