javascript - 传值被截掉怎么办?
大家讲道理
大家讲道理 2017-04-11 11:44:05
0
4
256
var linkHref = '
http://m.home.cn/liveList/live?liveId=185&broadcasterId=692388&uskey=a81999440aa5488bb049d067a5090c1b&room=1184&chat=@TGS#355V5GBEC&title=%E5%93%84';

我要把上面地址里的chat参数@TGS#355V5GBEC传给后台
但是传过去后就剩下@TGS

我用下面的这种方法获取chat参数,也用了encodeURIComponent进行编码,但还是不行,这是怎么回事??

function getQueryString(name, source) {
    var reg    = new RegExp('(^|\\?|&|\\/?)' + name + '(\\/|=)(\\d+|[^&]*)(\\?|&|$)', 'i'),
        source = source || window.location.search,
        r      = source.match(reg)
    if (r != null) return unescape(r[3])
    return null
}

var chat = encodeURIComponent(getQueryString('chat',linkHref));
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
阿神

把#转义一下

Ty80

地址里#为特殊字符,默认参数获取时候会忽略#后面的内容,进行一次url转码,浏览器默认会还会转解码#处理,所以数据会被截断。

在处理时候对字符串进行两次url转码,接到参数值后进行2次解码即可。

洪涛

#换成%23,js的话应该有相应的方法处理的,因为太久没折腾了你自己搜索一下吧。

迷茫

base64转义

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!