[英]setting window.location.href not working as expected
If the user is at url foo.com/#/veryLongToken and the response.redirectUrl
is foo.com/#/veryLongToken/resultToken , in the first example, when the page is reloaded we end up at foo.com/#/veryLongToken . 如果用户位于url foo.com/#/veryLongToken上 ,并且
response.redirectUrl
为foo.com/#/veryLongToken/resultToken ,则在第一个示例中,当页面重新加载时,我们最终会在foo.com/#/veryLongToken 。 In the second example, we end up at foo.com/#/veryLongToken/resultToken which is what we expect. 在第二个示例中,我们最终到达了foo.com/#/veryLongToken/resultToken 。
More info; 更多信息;
Doesn't work: 不起作用:
function successHandler(response) {
$window.location.href = response.redirectUrl;
/* redirectUrl might contain only changes to the hash-fragment
which is why we force a reload here */
$window.location.reload();
}
Works; 作品;
function successHandler(response) {
$window.location.hash = response.redirectUrl.substr(response.redirectUrl.indexOf('#'));
$window.location.reload();
}
I'd really like to know why the first example doesn't work. 我真的很想知道为什么第一个示例不起作用。 Any ideas?
有任何想法吗?
UPDATE: $window.location.href
is https://foo.fo.se/#/payment/Ak1ZWDg1MDhJAwJWVElOUE5WVEZQSQMCAwIDAgMCAwIDAgMCTVlYODUwOEkDAgMCAwIDHQDSqdsSYXcT5rdNEkrClAYdawRZXF3vwZUSSb9_XHeQTFJcyJxnQXnz1V4gQCTgm7q9OYmLKMFVEaCaZM8RX6iIExvQZT7uPjtfYowjvvU-JpO8yMhTquehcBOo_JEXqCskKVStCp25qWq4GdPXgP3f1KthAO17OOAdLHKMNm8bmNW8Nj-P_xltDTV22ZHABQS_4d0DcWSDj7ZfUK3q28zZ9pLdedu3sjblzmXqDiSBNEuDQfQOjMt_s0xlayYX0qUwJwwviaZ8aB-qLRnV7KD_LvaESGrtwq7_iiNIoB1jeFAp0dSG_N1c-5V-VZ3100DbJBoecTIF4NaCS62IxfM UPDATE:
$window.location.href
是https://foo.fo.se/#/payment/Ak1ZWDg1MDhJAwJWVElOUE5WVEZQSQMCAwIDAgMCAwIDAgMCTVlYODUwOEkDAgMCAwIDHQDSqdsSYXcT5rdNEkrClAYdawRZXF3vwZUSSb9_XHeQTFJcyJxnQXnz1V4gQCTgm7q9OYmLKMFVEaCaZM8RX6iIExvQZT7uPjtfYowjvvU-JpO8yMhTquehcBOo_JEXqCskKVStCp25qWq4GdPXgP3f1KthAO17OOAdLHKMNm8bmNW8Nj-P_xltDTV22ZHABQS_4d0DcWSDj7ZfUK3q28zZ9pLdedu3sjblzmXqDiSBNEuDQfQOjMt_s0xlayYX0qUwJwwviaZ8aB-qLRnV7KD_LvaESGrtwq7_iiNIoB1jeFAp0dSG_N1c-5V-VZ3100DbJBoecTIF4NaCS62IxfM
response.redirectUrl
is response.redirectUrl
是
https://foo.fo.se/#/payment/AkpITDg0ODFIAwIwTDNWVkwzMzcwSgMCAwIDAgMCAwIDAgMCSkhMODQ4MUgDAgMCAwIDHTQ1Z7gveX-CH7OzdVcAtOtar9mOZQF8f4t7MFIM5b1_WU7BAEtYPfSD77sFsGmHnm4GoFMmsIHUCzscUiaP2iofV7rflegQADTieSpwbausFLn6FNmaVeZdlFEtoWr6cU1VlN09zqk4T-1cqheoDsb_jMWr3kTdZGkJh_168P99zjV324jpDIkKAZ12WFXuaphnGdNoJgP9Ka9S2aIi8LniCiJNtOq-iXL4w8JNYVyLrbOqB2QNpc__RtT5kcW9NEaPWehQx2S5CIB157RcI_WkeGJRb1DKSSuy8CFIYJVrEOlCb-GtZ9gmPhrLh6qPiumokJWSI2cUuFBDpaGAeiA/AkpITDg0ODFIAwJJTlRFUk5BTF9FUlJPUgMCAwIDAgJJTlRFUk5BTF9QUk9DRVNTX0RFQklUX05PTl9SRUNPVkVSQUJMRQMD https://foo.fo.se/#/payment/AkpITDg0ODFIAwIwTDNWVkwzMzcwSgMCAwIDAgMCAwIDAgMCSkhMODQ4MUgDAgMCAwIDHTQ1Z7gveX-CH7OzdVcAtOtar9mOZQF8f4t7MFIM5b1_WU7BAEtYPfSD77sFsGmHnm4GoFMmsIHUCzscUiaP2iofV7rflegQADTieSpwbausFLn6FNmaVeZdlFEtoWr6cU1VlN09zqk4T-1cqheoDsb_jMWr3kTdZGkJh_168P99zjV324jpDIkKAZ12WFXuaphnGdNoJgP9Ka9S2aIi8LniCiJNtOq-iXL4w8JNYVyLrbOqB2QNpc__RtT5kcW9NEaPWehQx2S5CIB157RcI_WkeGJRb1DKSSuy8CFIYJVrEOlCb-GtZ9gmPhrLh6qPiumokJWSI2cUuFBDpaGAeiA/AkpITDg0ODFIAwJJTlRFUk5BTF9FUlJPUgMCAwIDAgJJTlRFUk5BTF9QUk9DRVNTX0RFQklUX05PTl9SRUNPVkVSQUJMRQMD
As a # in a URL mark an anchor, the changing of it don't trigger a page load as your bas url (foo.com/) stay the same. 由于URL中的#号标记为锚,因此更改它不会触发页面加载,因为您的基本url(foo.com/)保持不变。 The window.location.href isn't ment to hadle anchor change.
window.location.href不能改变强锚。
If you whant to change the "anchor" part, you must use the window.location.hash for it to be detected (as in your second exemple) 如果要更改“锚点”部分,则必须使用window.location.hash使其被检测到(如第二个示例所示)
Every browser has a URL length limits! 每个浏览器都有一个URL长度限制! the shortest one is Internet Explorer which is 2083 characters!
最短的一个是Internet Explorer,它是2083个字符! Check it out here
在这里查看
And all webkit browsers Chrome, Safari, Mozilla has a limit of 100KB ! 并且所有的Webkit浏览器Chrome,Safari,Mozilla都有100KB的限制 ! You can get more details here
您可以在此处获得更多详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.