设置window.location.href无法按预期工作

时间:2015-06-30 12:04:23

标签: javascript angularjs

如果用户位于网址 foo.com /#/ veryLongToken response.redirectUrl foo.com /#/ veryLongToken / resultToken ,则第一个例子,当页面重新加载时,我们最终在 foo.com /#/ veryLongToken 。 在第二个例子中,我们最终得到了 foo.com /#/ veryLongToken / resultToken ,这正是我们所期望的。

更多信息;

  • 网址很长
  • 使用AngularJS窗口包装器$ window
  • 在Chrome和Safari中测试,两者都显示相同的行为

不起作用:

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();
}

作品;

function successHandler(response) {
   $window.location.hash = response.redirectUrl.substr(response.redirectUrl.indexOf('#'));
   $window.location.reload();
}

我真的很想知道为什么第一个例子不起作用。有什么想法吗?

更新: $window.location.hrefhttps://foo.fo.se/#/payment/Ak1ZWDg1MDhJAwJWVElOUE5WVEZQSQMCAwIDAgMCAwIDAgMCTVlYODUwOEkDAgMCAwIDHQDSqdsSYXcT5rdNEkrClAYdawRZXF3vwZUSSb9_XHeQTFJcyJxnQXnz1V4gQCTgm7q9OYmLKMFVEaCaZM8RX6iIExvQZT7uPjtfYowjvvU-JpO8yMhTquehcBOo_JEXqCskKVStCp25qWq4GdPXgP3f1KthAO17OOAdLHKMNm8bmNW8Nj-P_xltDTV22ZHABQS_4d0DcWSDj7ZfUK3q28zZ9pLdedu3sjblzmXqDiSBNEuDQfQOjMt_s0xlayYX0qUwJwwviaZ8aB-qLRnV7KD_LvaESGrtwq7_iiNIoB1jeFAp0dSG_N1c-5V-VZ3100DbJBoecTIF4NaCS62IxfM

response.redirectUrl

https://foo.fo.se/#/payment/AkpITDg0ODFIAwIwTDNWVkwzMzcwSgMCAwIDAgMCAwIDAgMCSkhMODQ4MUgDAgMCAwIDHTQ1Z7gveX-CH7OzdVcAtOtar9mOZQF8f4t7MFIM5b1_WU7BAEtYPfSD77sFsGmHnm4GoFMmsIHUCzscUiaP2iofV7rflegQADTieSpwbausFLn6FNmaVeZdlFEtoWr6cU1VlN09zqk4T-1cqheoDsb_jMWr3kTdZGkJh_168P99zjV324jpDIkKAZ12WFXuaphnGdNoJgP9Ka9S2aIi8LniCiJNtOq-iXL4w8JNYVyLrbOqB2QNpc__RtT5kcW9NEaPWehQx2S5CIB157RcI_WkeGJRb1DKSSuy8CFIYJVrEOlCb-GtZ9gmPhrLh6qPiumokJWSI2cUuFBDpaGAeiA/AkpITDg0ODFIAwJJTlRFUk5BTF9FUlJPUgMCAwIDAgJJTlRFUk5BTF9QUk9DRVNTX0RFQklUX05PTl9SRUNPVkVSQUJMRQMD

2 个答案:

答案 0 :(得分:0)

当URL中的#标记为锚点时,更改它不会触发页面加载,因为您的bas url(foo.com/)保持不变。 window.location.href不会改变主播。

如果你想改变"锚点#34;部分,你必须使用window.location.hash来检测它(如你的第二个例子)

答案 1 :(得分:-1)

每个浏览器都有URL长度限制!最短的是 Internet Explorer,即2083个字符!查看here

所有 webkit浏览器Chrome,Safari,Mozilla的限制为100KB !您可以获得更多详细信息here