未捕获错误:INVALID_CHARACTER_ERR:DOM异常5
Uncaught Error: INVALID_CHARACTER_ERR: DOM Exception 5
$('form#update').submit(function(){
var _data = $(this).serializeArray();
var param = {};
$.map(_data,function(a,b){
if(a.name=='HotelName'){
param[a.name] = window.btoa(a.value);
}
else{
param[a.name] = a.value;
}
});
console.log(param);
$.post('api.coupon_edit_post.php',param,function(r){
coupons();
reloadMarkers();
});
return false;
});
window.btoa是导致此错误的原因吗?
我正在使用window.btoa,这样我就可以通过大部分字符。
编辑:我尝试了MDN解决方案,但它不起作用。我使用的是谷歌Chrome版本24.0.13125.57 m
错误肯定来自window.btoa
。
您应该修改MDN解决方案,并在转换前省略解码步骤,如下所示:
function utf8_to_b64( str ) {
return window.btoa(encodeURIComponent( str ));
}
function b64_to_utf8( str ) {
return decodeURIComponent(window.atob( str ));
}
这将从编码的字符串创建b64字符串,而不是再次对其进行解码(这将再次创建符号,btoa
无法处理(。现在这个工作:
utf8_to_b64('✓ à la mode');
b64_to_utf8("JUUyJTlDJTkzJTIwJUMzJUEwJTIwbGElMjBtb2Rl");
当然,由于编码,这显著地延长了b64字符串。
您现在可以修改您的示例:
param[a.name] = utf8_to_b64(a.value);
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- DOM事件通过JSON转换为java
- 将DOM节点值与字符串Javascript进行比较
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 流星中DOM的繁殖
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- PHP-如何重定向到同一页面并更改DOM's
- 如何使用ViewCompiler手动编译DOM的一部分
- 从popup.js|Chrome扩展访问DOM
- React DOM offsetHeight before rendering
- DOM导航-上一个同级未定义
- 如何判断何时将dom节点添加到文档中