Ext错误"Uncaught SyntaxError: Unexpected token <"

答复哈 发布于 2012/08/17 10:20
阅读 28K+
收藏 0

Chrome显示的错误:

代码

Ext.getCmp('id').getForm().submit({
	waitMsg: '正在上传序列号表格,请稍后...',
	waitTitle: '提示',
	url: 'url',
	//baseParams: {applyId : applyId},
	method: 'POST',
	success: function(form, action) {
		var jobj = Ext.util.JSON.decode(action.response.responseText);
		//...
	},
	failure: function(form, action) {
		var jobj = Ext.util.JSON.decode(action.response.responseText);
		//...
	}
});

返回数据是json字符串,发现success和failure都没有进入然后抛出"Uncaught SyntaxError: Unexpected token <"错误.

经调试发现在ext-debug的doDecode方法自动给加上了 

<pre style="word-wrap: break-word; white-space: pre-wrap;">...</pre>

 有没有人遇到过同样的问题?

 

 

以下是问题补充:

@答复哈:Ext 版本号 Ext JS Library 3.2.1 (2012/08/17 10:23)
加载中
0
金氧
金氧
帮顶!
0
leo108
leo108
是你后端代码的问题
答复哈
答复哈
再说返回的数据能过chrome的network可以查看得到,没错~
leo108
leo108
回复 @答复哈 : 这没有什么邪门不邪门的问题,很正常,本地环境和服务器环境又不是完全一样
答复哈
答复哈
应该也不是后端代码问题~
答复哈
答复哈
有个更邪门的问题,本地测试没出现这问题,一放到服务器上就出现了~_~
0
答复哈
答复哈

chrome查看后端返回的数据~

0
leo108
leo108

引用来自“答复哈”的答案

chrome查看后端返回的数据~

这个数据是哪个函数接收的?
答复哈
答复哈
回复 @leo108 : 在var jobj = Ext.util.JSON.decode(action.response.responseText); 这行加过断点,没有进入success和failure方法,在Ext的doDecode方法里断点了,直接进入这个方法,然后就看到上面截图那样的加了<pre>标签的返回值~但是其它地方调用经过这个方法就没出现这种情况
leo108
leo108
回复 @答复哈 : 在var jobj = Ext.util.JSON.decode(action.response.responseText); 后面一行加断点,看看action.response.responseText和jobj分别是什么
答复哈
答复哈
就是上面那个Ext.getCmp('id').getForm().submit()的url提交后返回的
0
L
L勇敢的心J

帮顶。。。

0
答复哈
答复哈
doDecode = function(json){
    var r = /[\[{].*[\]}]/g;
    if(r.test(json)){
        var m = json.match(r);
        return eval("(" + m[0] + ')'); 
    }
    return eval("(" + json + ')'); 
}

解决方法,改掉了它的源码~
答复哈
答复哈
回复 @Mr.CT : ~_~那哪样?
Mr.CT
Mr.CT
哪有这样的。
0
Rezeroer
Rezeroer

通过不修改Extjs代码 的方式解决了 

参考http://www.oschina.net/code/snippet_590489_24448

0
虚谷子
response.setHeader(   "Content-Type"   ,   "text/html;charset=utf-8" );
0
我不邋遢

引用来自“虚谷子”的答案

response.setHeader(   "Content-Type"   ,   "text/html;charset=utf-8" );

正解!

hl174
hl174
不需要改ext啥的 加个response响应头就行
hl174
hl174
正解+++
返回顶部
顶部