回调 URL 忽略 & 之后的参数值
Callback URL is ignoring parameter value after &
我卡在了这一点上。登录后,我得到了推荐-url,我将其放入 www.url.com?par1=val&callback="referral-url"。我的推荐 url 就像 www.ref-url.com?param1=val1¶m2=val2¶m3=val3。我的问题是登录后我得到了削减 url 即 www.ref-url.com?param1=val1 。我认为它在“&”之后忽略了 url。我正在使用经典的 asp 进行开发。任何帮助都会非常有帮助。
如果包含 URL 作为查询字符串参数,则需要使用 Server.URLEncode
,尤其是包含的 URL 还包含查询字符串时。
Dim login_redirect, login_referrer
login_redirect = "http://www.url.com/?par1=val&callback="
login_referrer = "http://www.ref-url.com/?param1=val1¶m2=val2¶m3=val3"
response.write login_redirect & Server.URLEncode(login_referrer)
输出:
http://www.url.com/?par1=val&callback=http%3A%2F%2Fwww%2Eref%2Durl%2Ecom%2F%3Fparam1%3Dval1%26param2%3Dval2%26param3%3Dval3
在另一个 URL 查询中传递带有查询的 URL 有点棘手。它工作的唯一方法是对其进行编码。例如:
https://website.com/?a=1&url=https%3A%2F%2Fwebsite.com%2F%3Fz%3D1%26y%3D2
但是,当你想return到你通过查询传递的url时,你需要解码它,否则它将不起作用。在重定向 url.
之前,您可以在 "login Page" 上使用以下功能
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
例如,你的登录页面应该有上面的功能和下面的代码:
Dim callback
callback = Request("callback")
callback = URLDecode(callback)
Response.redirect(callback)
我卡在了这一点上。登录后,我得到了推荐-url,我将其放入 www.url.com?par1=val&callback="referral-url"。我的推荐 url 就像 www.ref-url.com?param1=val1¶m2=val2¶m3=val3。我的问题是登录后我得到了削减 url 即 www.ref-url.com?param1=val1 。我认为它在“&”之后忽略了 url。我正在使用经典的 asp 进行开发。任何帮助都会非常有帮助。
如果包含 URL 作为查询字符串参数,则需要使用 Server.URLEncode
,尤其是包含的 URL 还包含查询字符串时。
Dim login_redirect, login_referrer
login_redirect = "http://www.url.com/?par1=val&callback="
login_referrer = "http://www.ref-url.com/?param1=val1¶m2=val2¶m3=val3"
response.write login_redirect & Server.URLEncode(login_referrer)
输出:
http://www.url.com/?par1=val&callback=http%3A%2F%2Fwww%2Eref%2Durl%2Ecom%2F%3Fparam1%3Dval1%26param2%3Dval2%26param3%3Dval3
在另一个 URL 查询中传递带有查询的 URL 有点棘手。它工作的唯一方法是对其进行编码。例如:
https://website.com/?a=1&url=https%3A%2F%2Fwebsite.com%2F%3Fz%3D1%26y%3D2
但是,当你想return到你通过查询传递的url时,你需要解码它,否则它将不起作用。在重定向 url.
之前,您可以在 "login Page" 上使用以下功能Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
例如,你的登录页面应该有上面的功能和下面的代码:
Dim callback
callback = Request("callback")
callback = URLDecode(callback)
Response.redirect(callback)