asp.net-mvc – 将Angular与MVC 5捆绑在一起后出现格式错误的Coo
我有一个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=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 只有在部署和生产网站时才会出现此错误. 我认为这与.net捆绑的方式有关,但我不确定. 我的包看起来像: bundles.Add(new ScriptBundle("~/bundles/controlPanelAngular").Include( "~/Scripts/angular/dist/angular.min.js","~/Scripts/angular/dist/ui-bootstrap-angular.min.js","~/Scripts/angular/dist/master.js" )); 其中master.js是我的应用程序的连接文件(使用grunt构建).我不太了解捆绑过程甚至不知道在哪里看.我已经阅读了有关该过程的文档,但它没有提供有关此类问题的任何帮助.人们在谷歌上发现的唯一问题是他们的角度不是“缩小友好”,但我的是.我使用内联语法(angular.module(‘module’).controller(‘ctrl’,[‘$injector’,函数($injector))所以它不是那样的. 我的代码不使用decodeURIComponent,encodeURIComponent,angular routing service,html5Mode,$location,cookies或任何我能想到的会导致此错误的内容.我有一个导航服务,可以调用几次: angular.module('core.service').factory('navigatorService',['$window',function ($window) { return { redirect: function (newLocation) { $window.location.href = newLocation; } }; }]); 这是我唯一一次访问网址.我没有使用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> 这就是我用来构建ajax调用的所有url的内容. 使用如下: 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; }); } }; }]); 我还发现几个链接正在讨论一个与此类似的问题: https://github.com/ivpusic/angular-cookie/issues/28 但那些是从一年前开始的,现在修复已经合并. 此外,如果我从@部分复制并粘贴任何这些网址,它们都会在浏览器中解析,如果这很重要的话 我取消了所有文件并获得了更准确的堆栈跟踪,仍然无法弄清楚可能导致这种情况的原因: "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 解决方法
如果有人好奇我添加了一个try catch到角度代码周围的错误,并调整错误以尝试追踪更具体的错误.我最终发现这个格式错误的cookie是我们的一些用户电脑上的谷歌分析cookie.不确定为什么角度无法处理错误.这是_utmz cookie
https://developers.google.com/analytics/devguides/collection/analyticsjs/cookie-usage (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 下载 – 使用ASP.Net Webapi流式传输大图像
- Asp.Net 5核心1.0不兼容/模板未找到
- asp.net-mvc-3 – 如何防止ASP.NET MVC应用程序中的DoS攻击
- asp.net-mvc – 在asp.net mvc中存储和检索用户的设置
- asp.net – REST服务的成员资格/授权
- .net – SignalR – connection.hubName未定义
- 具有Winforms,WPF和ASP.NET自由许可的开源控制库
- asp.net – 如何使用Response.OutputStream.Write将文件发送
- ABP官方文档(八)【会话管理】
- 应该在ASP.NET页面中完成哪些操作?
- asp.net-mvc – 在发送到视图之前如何修改控制器
- asp.net-mvc – 建立一个在MVC路由之上做出反应的
- asp.net-mvc-3 – 无法将带有[]的索引应用于ICol
- Asp.Net MVC是企业项目的合适解决方案吗?
- asp.net – 当完全执行OnResultExecuted和OnResu
- asp.net – 无法使用PreSendRequestHeaders()覆盖
- asp.net – html中的视频标签
- ASP.NET MVC类级自定义数据注释和ModelState键
- 在ASP.NET 4 ReportViewer中使用对象数据源
- asp.net – 在GridViewTemplate字段TextBox中对齐