【问题标题】:Custom MVC route appends angular http request url to current url in IE自定义 MVC 路由将 Angular http 请求 url 附加到 IE 中的当前 url
【发布时间】:2017-02-07 00:51:18
【问题描述】:

我在做一些自定义路由时遇到了一些障碍。我们有这些处理产品永久链接的自定义路由,我让 Angular 在后台向服务器请求非永久链接的路由。这工作正常,它将在除 IE 之外的所有其他浏览器中加载其他页面。

在 IE 中发生的事情是它从 http 请求中获取相对 url,然后只是附加它,例如:

这是永久链接的网址,可以正常加载:

http://localhost:16124/products/7-1-2-contemporary-glass-full-border-award/

这是我单击链接自定义此产品时 Angular 中的请求:

 var navigateUrl = "Product/Customize/" + this.productId;
        if (product.isCustomizable != true) {
            navigateUrl = "Cart";    
        }
        this.$window.location.href = navigateUrl;

它试图调用的 url 是这样的:

http://localhost:16124/products/7-1-2-contemporary-glass-full-border-award/Product/Customize/8036

我在其他浏览器上遇到了类似的问题,如果我使用 Html.ActionLink,它会为永久链接页面内的任何内容构建 url,它会将 url 作为查询字符串附加,并修复我刚刚将它们切换到纯 html 链接,我自己在其中写出了完整的相对 url,但我认为这不是问题所在;有谁知道会发生什么?同样,我只在 IE 中遇到这个问题。

【问题讨论】:

    标签: angularjs asp.net-mvc internet-explorer asp.net-mvc-routing


    【解决方案1】:

    好的,所以我知道问题出在哪里,如果你使用 location.href,在这种情况下,IE 不够聪明,无法在主机名之后重做 url,所以它最终只是将你必须的内容附加到末尾url,因此将其更改为 location.pathname 将修复错误,因为它告诉 IE 在主机名之后显式重做 url。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多