如何在angularJS

时间:2017-01-20 21:41:09

标签: angularjs rest angularjs-http

我试图使用anuglarjs http GET请求从我的Rest API控制器获取数据。但是,我需要发送的参数包括"。"导致URL失败的符号。我试着对它进行编码,但它不起作用。这是我做的:

function getApplication($http) {
    this.getData = function(application,name) {
      return $http({
        method : 'GET',
        url : http://localhost:8080/app/rest/+ 'app/' + encodeURIComponent(name)
      }).then(function successCallback(response) {
        return response.data;
      }, function errorCallback(response) {
        console.log(response.statusText);
      });
    }
  }

名称参数为app.01.com

我得到的网址结果是:

GET http://localhost:8080/app/rest/app/app.01.com 406 (Not Acceptable)

任何人都知道如何编码网址,以便我可以从Rest Controller获取数据? 感谢

3 个答案:

答案 0 :(得分:2)

使用btoa和atob



function getApplication($http) {
    this.getData = function(application,name) {
      return $http({
        method : 'GET',
        url : http://localhost:8080/app/rest/+ 'app/' +  window.btoa(name)
      }).then(function successCallback(response) {
        return response.data;
      }, function errorCallback(response) {
        console.log(response.statusText);
      });
    }
  }




.

答案 1 :(得分:0)

您是否尝试将网址数据放入双引号?         网址:" http://localhost:8080/app/rest/+' app /' + encodeURIComponent(name)"

答案 2 :(得分:0)

不可能"。"是一个未保留的字符,并且在替换未保留字符时使用其对应的百分比编码的US-ASCII八位字节的URI是等效的"。因此,/%2E与/相同。 ,这将被规范化。

然后您可以使用localhost:8080/app/rest/app/app%2E01.com作为您的网址