• URL参数为url,获取不到部分参数问题


    url1中的参数含有url2,在页面上获取url时发现url后面跟的参数获取不到,其实是浏览器把url2中&后的参数作为url1的参数来处理了。

    如:http://www.ilcng.com/index.html?id=http://ilcng.com/xmxy/?id1=1&id2=2)这个时候参数id所获得的值并不是 http://ilcng.com/xmxy/?id1=1&id2=2而是http://ilcng.com/xmxy/?id1=1

    原因是&符号是特殊符号不能直接传递,需要经过编码以后才能传递。

    解决办法,对url进行编码;

    函数:encodeURIComponent()

    与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

    因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。

    escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,,escape()不对"+"编码
    主要用于汉字编码,现在已经不提倡使用。

    encodeURI()是Javascript中真正用来对URL编码的函数。
    编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。

    encodeURIComponent()
    能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。

    我想要传递带&符号的网址,所以用encodeURIComponent()

    参考:http://blog.csdn.net/vfvfb/article/details/7770409

  • 相关阅读:
    c#操作ElasticSearch5详解
    消息推送服务
    Elasticsearch5.0.1 + Kibana5.0.1 + IK 5.0.1
    C#使用ES
    C# 开发人员的函数式编程
    Swagger文档转Word
    Spring Security OAuth2 Demo -- good
    is not eligible for getting processed by all BeanPostProcessors
    成功都一样,失败各不同;失败的项目也许值得你警醒
    java.exe进程来源排查录
  • 原文地址:https://www.cnblogs.com/chongchong409/p/5660418.html
Copyright © 2020-2023  润新知