未捕获错误:INVALID_CHARACTER_ERR:DOM异常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是否会导致此错误?未捕获错误:INVALID_CHARACTER_ERR:DOM异常5
我使用window.btoa,所以我可以传递大部分字符。
编辑:我试过MDN solution,但它不工作。我正在使用Google Chrome版本24.0.1312.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);
您是否访问过我发布的链接? – 2013-02-12 10:05:30
@MarCejas我做到了。 – Christoph 2013-02-12 10:07:20
好的。绝对不是这个答案。 – 2013-02-12 10:09:26
在哪条线路会出现这种错误发生的和在其浏览器? – Uooo 2013-02-12 09:51:28
@ w4rumy表示没有行日志。我只是使用GC控制台。 – 2013-02-12 10:01:45
判断'window.btoa'是否导致这个问题的方法是创建一个测试用例,只调用'window.btoa'和'a.value'中包含的数据。 – 2013-02-12 10:02:40