使用$ http.get()时,Angularjs url正在被更改。然后()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用$ http.get()时,Angularjs url正在被更改。然后()相关的知识,希望对你有一定的参考价值。

我有以下代码:

  1. 首先我记录网址,我得到了想要的网址:variants/images/30808708?ssl=true var myUrl = self.baseUrl + 'images/' + self.currentItem.variants[variant].imageId + '?ssl=true' console.log(myUrl); //prints: variants/images/30808708?ssl=true
  2. 其次,我打电话给http.get(myUrl).then(...)$http.get(myUrl) .then(function(data) { //do something... }, function(e) { console.log('err', e); //error prints undefined }); 在第二段代码中,似乎url在开头是双倍/三倍,如下所示:

GET http://localhost:8080/variants/199variants/variants/images/30808708?ssl=true 404 (Not Found)

注意variants/199variants/variants/

我不知道这种重复的来源。最近我将应用程序从1.3更新到1.5,并删除了hashbang #due到我之前遇到的一些canonicalUrl错误。不确定这是否相关

这是我在控制台中遇到的错误:

vendor.min.js:119 SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at Cc (vendor.min.js:16)
    at gc (vendor.min.js:93)
    at vendor.min.js:94
    at q (vendor.min.js:7)
    at md (vendor.min.js:94)
    at f (vendor.min.js:96)
    at vendor.min.js:132
    at m.$eval (vendor.min.js:147)
    at m.$digest (vendor.min.js:144)
(anonymous) @ vendor.min.js:119
vendor.min.js:119 Broken interceptor detected: Config object not supplied in rejection:
 https://github.com/chieffancypants/angular-loading-bar/pull/50

Update

我跟踪了第一个错误堆栈跟踪,似乎有时后端在找不到数据时返回html,并且它传递了以下调用的typeof ===字符串:enter image description here

D(a)是:

enter image description here

所以似乎错误是因为JSON.parse('

答案

你的self.baseUrl也应该包含主机地址(以及端口号),否则它将获取托管应用程序的主机地址。因此,请更新您的基地址以包含主机名的完整地址。

以上是关于使用$ http.get()时,Angularjs url正在被更改。然后()的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS $http.get 不检索后端数据

AngularJS $http.get() 在 Chrome 中最多需要 10-20 秒,在 Firefox 中运行良好

angularjs中的$ http.get读取txt文件但无法读取json文件

AngularJS - $http get 返回状态为 0 的错误?

AngularJS:$http.get 405(不允许的方法)

AngularJS:如何通过$ http获取数据时禁用默认观察者