Maison  >  Questions et réponses  >  le corps du texte

javascript - 传值被截掉怎么办?

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));
大家讲道理大家讲道理2721 Il y a quelques jours260

répondre à tous(4)je répondrai

  • 阿神

    阿神2017-04-11 11:46:05

    把#转义一下

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-11 11:46:05

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

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

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-11 11:46:05

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

    répondre
    0
  • 迷茫

    迷茫2017-04-11 11:46:05

    base64转义

    répondre
    0
  • Annulerrépondre