javascript – ExtJS解码方法无法解码“文件上传后”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – ExtJS解码方法无法解码“文件上传后”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2185字,纯文字阅读大概需要4分钟。
内容图文
![javascript – ExtJS解码方法无法解码“文件上传后”](/upload/InfoBanner/zyjiaocheng/815/a86ad106215f45b5b91bb1109de03ef5.jpg)
我将JSON格式结果发送回保存$quot符号的客户端.由于某些未知原因,代码中断了.
这是来自ext-all-debug的代码:
doDecode = function(json){
return eval("(" + json + ")"); FAILS HERE
},
这是我的JSON,因为它离开了服务器(据我所知,我希望服务器没有花时间解码这个& quot的空闲时间.):
{
success: true,
total: 1,
results: [{
"ID": -1,
"Value": "POChangeRequestlblCustomerCatalogNumber",
"Description": "",
"Labels": {
"1": {
"ID": -1,
"LanguageID": 1,
"Value": "Catalog Number",
"ToolTip": "",
"LanguageName": "English",
"KeyID": -1,
"KeyValue": "POChangeRequestlblCustomerCatalogNumber",
"KeyDescription": ""
},
"2": {
"ID": -1,
"LanguageID": 2,
"Value": """, <<< THIS IS THE BAD PART!!!
"ToolTip": "",
"LanguageName": "Hebrew",
"KeyID": -1,
"KeyValue": "POChangeRequestlblCustomerCatalogNumber",
"KeyDescription": ""
}
},
"ServerComments": "1"
}]
}
此JSON以text / html内容类型发送,因为它是文件上载操作的结果.这可能是问题的一部分吗?
好的,我继续追查问题,发现ExtJS对隐藏的iframe返回的值执行此功能:
doFormUpload : function(o, ps, url){
...
try{
doc = frame.contentWindow.document || frame.contentDocument || WINDOW.frames[id].document;
if(doc){
if(doc.body){
if(/textarea/i.test((firstChild = doc.body.firstChild || {}).tagName)){
r.responseText = firstChild.value;
}else{
r.responseText = doc.body.innerHTML; << THIS IS WHERE MY " get decoded back to " (sign)
}
}
r.responseXML = doc.XMLDocument || doc;
}
}
catch(e) {}
...
}
这个问题是否有一个很好的解决方法.似乎浏览器自动解码值????任何人????这是一个重大问题!!
解决方法:
这是我如何解决它.
问题是所有浏览器都会自动解码& QUOT;迹象.
所以我修复了Ext doFormUpload函数,如下所示:
doFormUpload : function(o, ps, url){
...
try{
doc = frame.contentWindow.document || frame.contentDocument || WINDOW.frames[id].document;
if(doc){
if(doc.body){
if(doc.body.innerText){
r.responseText = doc.body.innerText;
}else{
r.responseText = doc.body.innerHTML.replace(/<pre>/ig,'').replace(/<\/pre>/ig,'');
}
}
r.responseXML = doc.XMLDocument || doc;
}
}
catch(e) {}
...
}
此外,从现在开始,服务器返回的内容类型是“text / plain”
这可以防止浏览器解码数据.
我还从FF添加了一些不支持innerText属性的解决方法,但添加了包装响应的标记.
这对于ExJS框架来说是一个丑陋的黑客,但它对我有用.
希望有人会注意到这个问题,并对如何解决它有更好的想法.
内容总结
以上是互联网集市为您收集整理的javascript – ExtJS解码方法无法解码“文件上传后”全部内容,希望文章能够帮你解决javascript – ExtJS解码方法无法解码“文件上传后”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。