我试图在查询字符串参数中使用点(。)但它不起作用。
此网址正常:
但不是这个,因为它在参数中包含一个点:
当我尝试打开上面的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进行状态更改并将值传递给控制器。
任何帮助都将不胜感激。
答案 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
示例强>
如果您的带有点的网址为connect-history-api-fallback
并且您的角网应用位于/search-result
页面中,则可以向此连接历史记录-api-fallback添加重写规则
index.html