"点"在查询字符串参数中 - AngularJS

时间:2015-11-05 10:41:56

标签: angularjs url query-string

我试图在查询字符串参数中使用点(。)但它不起作用。

此网址正常:

http://localhost:9000/search-result?majTFMin=0&majTFMax=100&majDOMCFMin=0&majDOMCFMax=100&majRefDomainsMin=0&majRefDomainsMax=100&majRefIPsMin=0&majRefIPsMax=100&majRefDomainsEDUMin=0&majRefDomainsEDUMax=100&majRefDomainsGOVMin=0&majRefDomainsGOVMax=100&selectedTLDs=com

但不是这个,因为它在参数中包含一个点:

http://localhost:9000/search-result?majTFMin=0&majTFMax=100&majDOMCFMin=0&majDOMCFMax=100&majRefDomainsMin=0&majRefDomainsMax=100&majRefIPsMin=0&majRefIPsMax=100&majRefDomainsEDUMin=0&majRefDomainsEDUMax=100&majRefDomainsGOVMin=0&majRefDomainsGOVMax=100&selectedTLDs=co.uk

当我尝试打开上面的URL(带点)时,它只会打印:

无法GET /搜索结果majTFMin = 0&安培; majTFMax = 100安培; majDOMCFMin = 0&安培; majDOMCFMax = 100安培; majRefDomainsMin = 0&安培; majRefDomainsMax = 100安培; majRefIPsMin = 0&安培; majRefIPsMax = 100安培; majRefDomainsEDUMin = 0&安培; majRefDomainsEDUMax = 100安培; majRefDomainsGOVMin = 0&安培; majRefDomainsGOVMax = 100安培; selectedTLDs = co.uk

没有别的,甚至没有任何HTML标记(已在视图源中检查过)

我已经阅读了很多帖子。可以在没有编码的查询字符串中使用,但我不明白为什么它不在这里工作。我认为AngularJS存在一些问题。

我使用ui-router进行状态更改并将值传递给控制器​​。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

如果您在服务器上使用connect-history-api-fallback(例如lite-server),则默认情况下不会重写带点的网址。

connect-history-api-fallback code

var app = angular.module("myDiscuss", []);
app.controller("TabController", function($scope) {
  $scope.tab = null;
  $scope.subTab = null;
  $scope.like = null;
  $scope.subLike = null;

  $scope.selectLike = function(setTab) {
    $scope.like = setTab;
  };
  $scope.selectSubLike = function(setTab) {
    $scope.subLike = setTab;
  }
  $scope.selectTab = function(setTab) {
    $scope.tab = setTab;
  };
  $scope.selectSubTab = function(setTab) {
   $scope.subTab = setTab;
  };
  $scope.isSelected = function(checkTab) {
    return $scope.tab === checkTab;
  };
  $scope.isSelectedSub = function(checkTab) {
    return $scope.subTab === checkTab;
  };
  $scope.isSelectedLike = function(checkTab) {
    return $scope.like === checkTab;
  };
  $scope.isSelectedSubLike = function(checkTab) {
    return $scope.subLike === checkTab;
  }

});

if (parsedUrl.pathname.indexOf('.') !== -1) { logger( 'Not rewriting', req.method, req.url, 'because the path includes a dot (.) character.' ); return next(); } 版本 1.2.0 URLs with dots are allowed开始,您可以使用this problem

来解决rewrite roule

示例

如果您的带有点的网址为connect-history-api-fallback并且您的角网应用位于/search-result页面中,则可以向此连接历史记录-api-fallback添加重写规则

index.html