Asp.net mvc 与MVC 5绑定后出现格式错误的Cookie错误
我有一个使用angular的MVC5项目,出现以下错误:Asp.net mvc 与MVC 5绑定后出现格式错误的Cookie错误,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我有一个使用angular的MVC5项目,出现以下错误: Error: malformed URI sequence oh/h.cookies@https://controlpanel.abc.com/bundles/controlPanelAngularv=c7IsPcEqfC9w7vlO0f2C635w9XFObG3zp4KjeFBEh-c1:1:18254 g@https://controlpanel.abc.com/bundles/controlPanelAngular?v=c7IsPc
Error: malformed URI sequence
oh/h.cookies@https://controlpanel.abc.com/bundles/controlPanelAngularv=c7IsPcEqfC9w7vlO0f2C635w9XFObG3zp4KjeFBEh-c1:1:18254
g@https://controlpanel.abc.com/bundles/controlPanelAngular?v=c7IsPcEqfC9w7vlO0f2C635w9XFObG3zp4KjeFBEh-c1:1:35522
k/s<@https://controlpanel.abc.com/bundles/controlPanelAngular?v=c7IsPcEqfC9w7vlO0f2C635w9XFObG3zp4KjeFBEh-c1:1:34445
de/u/h.promise.then/c@https://controlpanel.abc.com/bundles/controlPanelAngular?v=c7IsPcEqfC9w7vlO0f2C635w9XFObG3zp4KjeFBEh-c1:1:48272
其中master.js
是我的应用程序的连接文件(使用grunt
构建)。我不太了解捆绑过程,甚至不知道去哪里找。我已经阅读了关于这个过程的文档,但是它没有提供任何关于这类问题的帮助。我在谷歌上能找到的唯一问题是,人们的角度不是“缩小友好”,但我的角度是。我使用了内联语法(angular.module('module').controller('ctrl',['$injector',function($injector))
,所以不是这样
我的代码没有使用decodeURIComponent
,encodeURIComponent
,角度路由服务,HTML5模式
,$location
,cookies,或者任何我能想到的会导致此错误的东西。我有一个导航服务,它会被调用几次:
angular.module('core.service').factory('navigatorService', ['$window', function ($window) {
return {
redirect: function (newLocation) {
$window.location.href = newLocation;
}
};
}]);
这是我唯一一次访问url。我没有使用url参数。有一个页面我甚至需要一个,但由于MVC构建url的方式,我通过@ViewBag
传递了它,而不是在角度上分析它:
ng-init="init(@(ViewBag.categoryId));"
项目的架构师希望我们所有人都使用asp操作来生成url,以便在位置发生变化时更新我们的url
为此创建了一个内联工厂:
<script type="text/javascript">
angular.module('core.service').factory('mvcRouterService', function () {
return {
getCategoryUrl: function () { return '@Url.Action("GetCategory", "Categories")'; }
};
});
</script>
我还发现几个链接讨论了一个类似的问题:
但这些都是一年前的事了,现在修复已经合并了
此外,如果我从@part-on复制并粘贴任何URL,它们都会在浏览器中解析(如果有必要)
我未整理所有文件并获得了更准确的堆栈跟踪,但仍然无法找出导致此问题的原因:
"Error: malformed URI sequence
Browser/self.cookies@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:4811:33
sendReq@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8813:1
$http/serverRequest@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8539:25
processQueue@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:12078:25
scheduleProcessQueue/<@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:12094:36
$RootScopeProvider/this.$get</Scope.prototype.$eval@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13278:25
$RootScopeProvider/this.$get</Scope.prototype.$digest@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13090:37
$RootScopeProvider/this.$get</Scope.prototype.$apply@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13382:33
bootstrapApply@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1494:20
invoke@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:4101:17
bootstrap/doBootstrap@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1493:25
bootstrap@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1512:13
angularInit@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1406:45
@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:24416:9
“错误:URI序列格式错误
浏览器/自我。cookies@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:4811:33
sendReq@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8813:1
$http/serverRequest@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8539:25
processQueue@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:12078:25
scheduleProcessQueue/如果有人好奇,我在angular代码中添加了一个try-catch,在它出错的地方,并对错误进行了调整,以尝试跟踪更具体的错误。我最终发现,格式错误的cookie是我们一些用户pc上的google analytics cookie。我不确定angular为什么无法处理错误。它不是他是乌特姆兹饼干
angular.module('module').factory('genericAjax', ['$http', '$injector', function ($http, $injector) {
var mvcRouterService = $injector.get('mvcRouterService');
return {
getCategory: function (categoryId) {
var data = {
categoryId: categoryId
};
return $http.post(mvcRouterService.getCategoryUrl(), data).then(function (result) {
return result.data;
});
}
};
}]);
"Error: malformed URI sequence
Browser/self.cookies@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:4811:33
sendReq@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8813:1
$http/serverRequest@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:8539:25
processQueue@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:12078:25
scheduleProcessQueue/<@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:12094:36
$RootScopeProvider/this.$get</Scope.prototype.$eval@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13278:25
$RootScopeProvider/this.$get</Scope.prototype.$digest@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13090:37
$RootScopeProvider/this.$get</Scope.prototype.$apply@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:13382:33
bootstrapApply@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1494:20
invoke@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:4101:17
bootstrap/doBootstrap@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1493:25
bootstrap@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1512:13
angularInit@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:1406:45
@https://controlpanel.abc.com/Scripts/angular/dist/angular.js:24416:9