一个上传的地方,
function upload_init(this_hour_num){ $('#hour_' + this_hour_num + ' .btn_upload').on({ click: function(){ $('#upload_tips').hide(); data_field = $(this).attr('data-field'); data_ex = $(this).attr('data-ex'); $item = $(this); /*初始化上传按钮*/ $('#input_upload').uploadify({ "height" : 30, "multi" : false, "sizeLimit" : 500 * 1024 * 1024, "swf" : "/Public/static/uploadify/uploadify.swf", "fileObjName" : "download", "buttonText" : "上传", "uploader" : "/index.php?s=/course/upload/file_upload/savePath/" + data_field, "width" : 120, 'removeTimeout' : 1, 'fileTypeExts' : data_ex, "onUploadSuccess" : uploadSuccess, 'onFallback' : function() { alert('未检测到兼容版本的Flash.'); } }); /*上传成功后方法*/ function uploadSuccess(file, data) { //document.write(data); //var data = $.parseJSON(data); var data = jQuery.parseJSON(data); alert(data); if(data.status == 'true') {
代码var data = jQuery.parseJSON(data); 这步出错。原因是多了一个不可见字符导致转码失败。 但是定位又找不到是哪里加的这个字符,所以请表格帮我写个正则,把这个过滤掉
我的想法是在jQuery.parseJSON(data);之前用正则,只取可见字符进行转码(只匹配下面那些就行,用不到的字符全部过滤掉)
大概涉及到的字符是这些:
{"status":"true","info":{"name":"\u4fe1\u606f\u5b89\u5168\u5e08\u7406\u8bba\u8003\u8bd5\u590d\u4e60\u9898(\u6574\u7406).pdf","type":"courseware","size":297069,"key":"download","ext":"pdf","md5":"cf18eb2947ec4fbad4b1c039f9673585","sha1":"281edac612317cdc8ea8b84ce55df1048a9a25f9","savename":"58c6550dbca94.pdf","savepath":"\/Uploads\/courseware\/2017-03-13\/","userid":false,"create_time":1489392909,"file_id":31476}}
js实在渣,写了半天写不对,不知道是写的代码有问题还是这样的思路不对。求表哥帮忙写一个
看了一下 charcode是65279,百度了下,好像是windows的原因
let data = '{"status":"true","info":{"name":"\u4fe1\u606f\u5b89\u5168\u5e08\u7406\u8bba\u8003\u8bd5\u590d\u4e60\u9898(\u6574\u7406).pdf","type":"courseware","size":297069,"key":"download","ext":"pdf","md5":"cf18eb2947ec4fbad4b1c039f9673585","sha1":"281edac612317cdc8ea8b84ce55df1048a9a25f9","savename":"58c6550dbca94.pdf","savepath":"\/Uploads\/courseware\/2017-03-13\/","userid":false,"create_time":1489392909,"file_id":31476}}' let json = JSON.parse(data.trim()) console.log(json)
试试
var data = jQuery.parseJSON(data.trim());
这个字符出现的原因可以参考这里进行排除