`
kanpiaoxue
  • 浏览: 1777689 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

解决Extjs3上传文件Chrome解析Json错误问题

 
阅读更多

今天用ExtJS 3.1 进行文件上传,参照的是它的ext-3.1.1\examples\form\file-upload.js 的例子。用的浏览器是Google的Chrome,发现一个BUG。

我的后台程序返回的json是下面的形式:

{"errors":"","success":true}	

 
浏览器始终报错,告诉我JSON的格式不正确。一直想不明白为什么。

我在Chrome浏览器里面看到返回前台的json就是{"errors":"","success":true},但是页面就是报错。我怀疑是Ext有问题。

我Debug了Ext的js,发现下面的代码有问题:ext-all.js

Ext.util.JSON = new (function(){
    var useHasOwn = !!{}.hasOwnProperty,
        isNative = function() {
            var useNative = null;

            return function() {
                if (useNative === null) {
                    useNative = Ext.USE_NATIVE_JSON && window.JSON && JSON.toString() == '[object JSON]';
                }
        
                return useNative;
            };
        }(),
        pad = function(n) {
            return n < 10 ? "0" + n : n;
        },
        doDecode = function(json){
        		// 这里有问题。我后台返回的是 {"errors":"","success":true}	
        		// 但这里的 json 里面的内容却是: "<pre style="word-wrap: break-word; white-space: pre-wrap;">{"errors":"","success":true}</pre>"
        		// 让我百思不得其解。我只好去网上找了一个哥们的代码来救急。Chrome下面是正确的,其他浏览器没测试。请大家注意。
            return eval("(" + json + ')');    
        },
       .... 

 

我在 http://www.oschina.net/code/snippet_590489_24448

找了个方法,放在自己的页面里面,就好用了。

这段代码是:

<script type="text/javascript">
		Ext.USE_NATIVE_JSON = true;
		window.JSON = {
			"stringify":Ext.util.JSON.doEncode,
			"parse":function(json){
				var str = json;
				var spos = str.indexOf(">");
				var epos = 0;
				if(spos != -1){
					 epos = str.indexOf("<",spos);
					
					str = str.substr(spos+1,epos-spos-1); 
				}
				return eval("("+str+")");
			},
			"toString":function(){
				return '[object JSON]';
			}
		};
	</script>

 

 

 

 

分享到:
评论

相关推荐

    extjs+asp例子

    使用Chrome开发者工具或Firebug等前端调试工具,结合ASP的调试功能,可以帮助定位和解决问题。 8. **部署与运维** 部署时,需要确保服务器环境配置正确,如安装IIS,配置ASP支持,以及处理好静态文件(如CSS、...

    php+extjs编程实例(学习很受用!)

    在IT行业中,PHP和ExtJS是两种非常重要的技术,它们分别在服务器端和客户端发挥着关键作用。...而ExtJS则是一个强大的...在实际项目中,不断地迭代和优化,你将能够解决各种复杂的问题,为用户提供更加出色的交互体验。

    Extjs源码分析与开发实例宝典

    《Extjs源码分析与开发实例宝典》深入解析了Extjs框架的内核与实践应用,为读者提供了详尽的理论与实战指导。本文将根据该书籍的目录及部分章节内容,提炼出一系列关键知识点,帮助读者快速掌握Extjs的核心技术和...

    extjs+servlet的增删改操作,绝对能跑起来!!!

    - **处理响应**:ExtJS应用接收到响应后,解析JSON数据,更新UI展示。 4. **示例代码**: - 在ExtJS中,创建一个数据模型(Model)和Store,以及对应的CRUD操作控件,如表格(Grid)、表单(FormPanel)等。 - ...

    extjs tree

    ExtJS Tree 是一个基于JavaScript的UI组件库ExtJS中的一个重要组成部分,用于构建可交互的树形数据结构。在Web应用程序中,它常被用来展示层级关系的数据,如目录结构、组织架构或者数据库的表关系。ExtJS Tree的...

    公司开发平台说明文档-Extjs WEB层架构及Java开发规范.doc

    - **JSON数据交换**:前后端之间主要采用JSON格式进行数据传输,便于解析和处理。 2. **Java开发规范**: - **命名约定**: - **类名**:采用驼峰命名法,首字母大写,例如`CustomerManager`。 - **变量名**:...

    ext-jwt-test:在 Node 和 ExtJS 5 中使用 JWT 令牌

    **标题解析:** "ext-jwt-test" 是一个项目或模块的名称,它专注于在 Node.js 环境和 ExtJS 5(一种基于 JavaScript 的前端框架)中使用 JSON Web Token (JWT) 作为安全机制。这个项目可能是为了演示如何在这些技术...

    extjs5-sqlite-proxy:用于 node-sqlite3 和 WebSQL 的 Ext.data.proxy.Proxy 实现

    "ExtJS5 SQLite 代理" 提供了一个方便的解决方案,使得基于 ExtJS5 构建的前端应用能够与 SQLite 数据库进行通信。"node-sqlite3" 是一个流行的 Node.js 模块,它允许在服务器端直接操作 SQLite 数据库。而 "WebSQL...

    Extjs ajax同步请求时post方式参数发送方式

    在进行Web开发时,尤其是使用Extjs框架时,我们经常需要通过Ajax...如果问题依旧存在,可以利用浏览器提供的开发者工具(如Chrome的开发者工具或Firefox的Firebug)进行进一步的调试和分析,以确定问题所在并解决它。

    ExtAspNet_v2.3.2_dll

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

    sencha ext js 6 快速入门(必看)

    - 当使用IIS作为服务器时,需要配置以便能够解析JSON文件,因为ExtJS在执行时会产生JSON格式的输出。 - 需要在IIS中安装ASP支持,添加MIME类型(text/json或application/x-javascript),并设置相应的脚本映射处理...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

    ext-3.0.0框架(带Demo)

    数据源可以是JSON、XML或者其他格式,EXT会自动进行解析和同步。 3. **布局管理**:EXT提供了多种布局方式,如Fit布局、Border布局、Form布局、Table布局等,可以根据不同的组件和应用场景选择合适的布局模式,轻松...

Global site tag (gtag.js) - Google Analytics