使用$ http.get()时会更改Angularjs url。然后()

时间:2017-12-29 10:00:13

标签: angularjs angularjs-directive angular-ui-router angularjs-scope angular-promise

我有以下代码:

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

    在第二段代码中,似乎网址在开头是双倍/三倍,如下所示:

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

    注意variants/199variants/variants/

    我不知道这种重复的来源。最近我将应用程序从1.3更新到1.5,并删除了hashbang #,因为我之前遇到了一些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
    

    更新

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

    D(a)是:

    enter image description here

    因此看起来错误是因为JSON.parse('

1 个答案:

答案 0 :(得分:0)

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