美文网首页
js对通过url传值转码问题

js对通过url传值转码问题

作者: Jalonly | 来源:发表于2016-11-01 13:15 被阅读137次

       今天遇到一个问题,跨域调其他系统接口,需要传一个回调地址过去,由于是单页面应用,回调地址中存在特殊字符‘#’和‘?’,想着用字符转码在传过去,于是就想到了js原生的3个常用的转码(解码)函数:escape(unescape),encodeURI(decodeURI),encodeURIComponent(decodeURIComponent)。

escape(),不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。

encodeURI(),不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) ,它的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#(地址栏中如果有#和?,并且需要用来算签名的时候就不要用这个方法了)

encodeURIComponent(),不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ),其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

例如,我的回调地址是:http://www.liantiao.com/#/orderDetail/T20160406201024825,把这个回调地址作为参数跨域请求其他api接口,对方需要对比参数签名的,所以,就要把#等特殊字符进行转义,这里我用了encodeURIComponent()函数,转义之后是:"http%3A%2F%2Fwww.liantiao.com%2F%23%2ForderDetail%2FT20160406201024825"

相关文章

  • js对通过url传值转码问题

    今天遇到一个问题,跨域调其他系统接口,需要传一个回调地址过去,由于是单页面应用,回调地址中存在特殊字符‘#’...

  • Thymeleaf语法,使用范例

    url传参数: onclick传参数 必须按着这个写 post+form写法: 传值给js 操作对象: 时间对...

  • JS通过URL向另一jsp页面传值时中文乱码问题

    js传值到JSP 今天搞一个小项目的时候需要从某个页面的js向另外一个jsp页面通过url传值时中文乱码,搞了半天...

  • 中文url转码问题

    解决中文url转码问题

  • iOS16图片不加载问题

    项目中对url进行了拼接,然后使用上述方法对url转码,导致url为空建议,仅对需要转码的部分转码ps:使用七牛云...

  • iOS 视频 转码MP4 /视频裁剪 /上传

    /////////////////////////////// //视频转码方法 传相册或者相机得到的url和给...

  • url转码问题

    公司项目安全凭证加密,传参值进行了base64加密,可是我本地的postman测试数据对不上后台的数据,后来才发现...

  • 两个网页之间传递参数

    1.JavaScript通过URL传值(传递一下简单的少量的数据。URL对长度有一定限制)(不建议) 首先通过UR...

  • vue-router总结

    1、通过 :to 传参 2、通过URL传参 router/index.js App.vue Hi.vue 重定向 ...

  • oc,js互调

    1)oc调js方法(通过data可以传值,通过 response可以接受js那边的返回值 ) iddata=@{@...

网友评论

      本文标题:js对通过url传值转码问题

      本文链接:https://www.haomeiwen.com/subject/dxsmuttx.html