我有一个像http://localhost.com/api/authenticateuser?user=demo&pass=demo#123
这样的网址但是,当我使用$_GET['pass']
时,我只能$_GET['pass']
"demo"
的价值而不是"demo#123"
有没有办法让参数值为"demo#123"
由于
答案 0 :(得分:3)
你必须urlencode你的网址,以逃避特殊/禁止的字符。
答案 1 :(得分:1)
#之后的部分称为片段标识符,它不会发送到服务器。如果您想以这种方式发送,则需要使用encodeURIComponent。
答案 2 :(得分:0)
您需要确保正确转义网址 - 请参阅URL Escape Codes以获取参考。例如,#
应该转义为%23
。
有很多方法可以做到这一点,包括使用JavaScript函数encodeURIComponent(用于动态生成的链接)。
答案 3 :(得分:0)
好吧,我正在开发一个AngularJS应用程序,它检查用户是否每次请求都登录。
在某些时候,app会使用参数“next”将用户重定向到/ login controller传递用户的当前状态。
所以我得到了这个网址“http://test.dev/login/?next=/#/foo/bar”,我希望得到$ _GET ['next']的值,但等等......为什么这只是返回'/'?
好吧,事实证明我需要使用JavaScript方法encodeURIComponent()来生成URL。
然后这个:http://test.dev/login/?next=/#/foo/bar,变成了这个:http://test.dev%2Flogin%2F%3Fnext%3D%2F%23%2Ffoo%2Fbar并且PHP能够很好地处理这个问题。