为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery 利用jsonp获取数据时显示为中文而非utf8编码

标签:
JQuery

有时候,我们用jQuery使用的jsonp的形式获取跨域数据,但其返回值是utf8的原始编码,如果直接渲染到页面的话会显示 \uXXXX\uYYYY 这样的字符而非中文。其实我们只需要做一个简单的转换既能解决此问题。

// 一个常见的jQuery ajax请求$.ajax(url, {    'dataType':'jsonp', // 这里总是会用get,无论是否设置
    'contentType':'application/x-www-form-urlencoded; charset=UTF-8', // 如果编码不同可以指定下。考虑到某些语言强制utf-8编码或前后端统一则可以省略
    'error':function(XHR, textStatus, errorThrown){        // 错误处理
    },    'complete':function(XHR, textStatus){        // 请求完成后处理在 error或success之后,必定执行
    },    'success':function(data, textStatus, jqXHR){        var o = eval('('+data+')'); // 这里会利用eval函数解析返回字符串使其变成对象
        console.log(JSON.stringift(o)); // 再利用JSON对象将其解析成字符串
    }
});

利用 eval('('+data+')') 解析字符的话需要注意的是,这个可能会存在被攻击的风险。比如:解析的字符串是 alert('im hack') 时会有问题,因此不推荐直接引用未知源的数据。



作者:Nomandia
链接:https://www.jianshu.com/p/a3b184c80ce0


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消