有时候,我们用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
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦