Tag: angularjs

将Angular的请求压缩到Web API

我试图通过压缩从我的角度客户端到AspNet Web API的请求来优化带宽使用。 有没有办法实现这个目标?

升级到SignalR-2.0.0-beta2时未生成/ signalr / hubs

我有一个像SignalR 1.1.2上运行的应用程序的工作聊天,它将被放到负载平衡的服务器上,所以我需要实现一个背板解决方案来同步服务器。 这是一个ASP.NET MVC4 .NET 4.5应用程序。 使用SignalR Hub ,而不是持久连接。 该应用程序利用客户端的AngularJS来处理ui绑定和更新。 我按照此处列出的步骤实现了sql server背板,并使用了此处概述的1.x到2.0迁移中概述的步骤。 解决方案构建,但是当点击使用SignalR的页面时,“/ signalr / hubs”脚本引用返回500错误。 这是我到目前为止所采取的步骤列表。 使用nuget,删除了与SignalR 1.1.2相关的所有引用和依赖项。 双重检查/ bin和/ packages目录以确保它们不再引用任何旧库。 这是关于2.0升级的github 问题上发现的评论,表示卸载和重新安装SignalR是升级的方法。 通过软件包管理器控制台(PMC) Install-Package Microsoft.AspNet.SignalR -Pre SignalR 2.0.0-beta2 Install-Package Microsoft.AspNet.SignalR -Pre 使用PMC Install-Package Microsoft.AspNet.SignalR.SqlServer -Pre安装的SQL Server消息传递背板 删除了RouteTable.Routes.MapHubs(); 来自Global.asax 在项目的根目录中创建了Startup类。 Startup.cs using Microsoft.AspNet.SignalR; using Microsoft.Owin; using Owin; namespace My.NameSpace { public class Startup { […]

Angular ASP.NET MVC绑定

在我们的MVC 5项目中,我们使用Angular。 以下Razor工作得很好: @Html.EditorFor(x => x.FirstName, new { required = “required”, ng_model = “FirstName” }) 但是,如果在呈现页面时将MVC Model.FirstName设置为“Bob”,则“输入”字段仍为空。 如果我在Angular控制器中设置它: $scope.FirstName = “@(Model.FirstName)”; 然后出现“Bob”。 我的问题是:我是否必须为UI中的每个字段设置$ scope.VARIABLE = MODEL.VARIABLE ,或者我可以告诉Angular尊重ASP.NET MVC的内容。 Angular似乎过度写入了MVC写的[input value =“Bob”]。

AngularJS使用Asp.net Web API:$ http post返回XMLHttpRequest无法加载:预检的响应具有无效的HTTP状态代码405

当尝试使用$http将json POST到Asp.net Web API服务器时,它返回以下错误 XMLHttpRequest cannot load http://localhost:62158/api/video/add. Response for preflight has invalid HTTP status code 405 但是从$.ajax发出相同的请求是工作文件。 $ HTTP代码 $http.post(url, data, config) .success(function (data, status, headers, config) { defered.resolve(data); }) .error(function (data, status, header, config) { defered.reject(data); }); $ .ajax代码 $.ajax({ type: “POST”, url: url, data: newVideo, success: function (a) { debugger; }, error: […]

SPA – Firebase和.Net WebApi 2身份validation

我有一个用AngularJs编写的单页面应用程序(框架在这一点上是无关紧要的)应用程序托管在IIS中,它由index.html和一堆客户端资产组成。 在后端我有WebApi 2,也作为单独的应用程序在IIS中托管。 对于客户端身份validation,我使用Firebase(简单登录),启用了几个社交网络,如Facebook,Twitter或Google。 到现在为止还挺好。 我喜欢用firebase启用twitter身份validation是多么容易。 在使用社交网络登录时,我从firebase返回,firebaseAuthToken和提供者accessstoken。 现在我想使用firebaseAuthToken或提供者访问令牌来validation我的WebApi。 问题是: 在给定条件下使用WebApi进行身份validation的最佳方法是什么? 由于我在服务器上安装了复杂的业务逻辑,所以没有选项只使用firebase来存储我的数据并摆脱web api。 到目前为止,我有一个愚蠢的想法是将社交提供者访问令牌传递给服务器,针对提供者validation令牌,然后使用Owin -Katana发出安全令牌。 由于缺乏文档,复杂性以及与单页应用程序的错误集成,我没有使用katana构建的社交提供程序支持。 我发现SPA的视觉工作室模板太具体了。 但那是我:)

如何缓存.NET Web API请求(并使用w / AngularJS $ http)

我有一个用ASP.NET编写的Web API,我通过AngularJS $http消费。 我已经在我的AngularJS工厂中启用了缓存,如下所示,但每个请求仍然返回200的响应,从不返回200 (from cache)或304 (并且每个请求我的意思是在同一页面上多次发出相同的web api请求,重新访问页面我已经访问过包含Web API请求,刷新所述页面等)。 angular.module(‘mapModule’) .factory(‘GoogleMapService’, [‘$http’, function ($http) { var googleMapService = { getTags: function () { // $http returns a promise, which has a ‘then’ function, which also returns a promise return $http({ cache: true, dataType: ‘json’, url: ‘/api/map/GetTags’, method: ‘GET’, data: ” }) .then(function (response) { return […]

Web API / OWIN,SignalR和授权

我正在开发AngularJS,Web API,SignalR应用程序的原型,作为VS 2013中新项目的潜在起点。 在这个阶段,我几乎使用visual studio为个人用户帐户生成的预制代码。 StartUp.Auth.cs代码中有一行看起来像这样。 app.UseOAuthBearerTokens(OAuthOptions); 有了这个,我可以将[Authorize]属性添加到控制器,它工作正常。 顺便说一句,使用angular我可以在JavaScript中添加包含令牌的标准头,如下所示。 $http.defaults.headers.common.Authorization = ‘bearer ‘ + access_token; 然后我将SignalR添加到项目中。 它支持自己的[Authorize]属性版本,但在使用SignalR时无法传递自定义标头。 这是浏览器方面的限制。 文档说您可以将令牌作为查询字符串的一部分传递。 我在JavaScript端添加了该代码。 我的SignalR代码现在包含了这个。 我将令牌传递为’bearer_token’。 this.connection = $.hubConnection(“/TestHub”, { useDefaultPath: false, qs: “bearer_token=” + token }); 所以我的问题是如何使OWIN识别令牌现在它不再在标题中。 经过多次搜索后,我最终添加了将令牌从查询字符串移动到标头中的代码。 对于我的原型,我刚刚在StartUp.Auth.cs的原始行上方添加了一些代码。 所以,现在它看起来像这样: app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions() { Provider = new OAuthBearerAuthenticationProvider() { OnRequestToken = context => { if (context.Request.Path.Value.StartsWith(“/TestHub”)) { string bearerToken […]

AngularJs脚本在部署后不起作用,它会出错

我一直在构建一个Web项目,我不时尝试发布,看看它在localhost中的样子。 这一次,我添加了angularjs来获取/显示货币并再次部署项目。 但是,它会向浏览器中的用户显示{{currency}}。 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=nProvider%20%3C-%20n%20%3C-%20CurrencyController 我的angularjs代码看起来像这样…… app.controller(“CurrencyController”, function ($scope, $http) { $http.get(‘http://dummy.com/api/getcurrencyformainscreen’). success(function (data, status, headers, config) { $scope.currencies = data; }). error(function (data, status, headers, config) { //alert(data); }) }); 我究竟做错了什么?

WCF Web服务,返回错误/exception字符串

我有一组WCF Web服务,如果发生exception,将使用OutgoingWebResponseContext将错误描述返回给调用者。 我的问题是,有时,当出现问题时,Web服务显示为失败 ,带有ERR_CONNECTION_RESET消息,而不是返回错误消息,我想防止这种情况发生。 例如,这是我的漂亮的C#代码,它查询我的Northwind数据库,并返回一个Customer名称列表。 或者更确切地说, 它会这样做 ,但我故意在那里插入一个例外。 public List GetAllCustomerNames() { // Get a list of unique Customer names. // try { throw new Exception(“Oh heck, something went wrong !”); NorthwindDataContext dc = new NorthwindDataContext(); var results = (from cust in dc.Customers select cust.CompanyName).Distinct().OrderBy(s => s).ToList(); return results; } catch (Exception ex) { OutgoingWebResponseContext […]

Angular $ http错误响应statusText始终未定义

我试图向用户返回一个自定义错误消息,让他们知道出现错误时出了什么问题,但我已经尝试了所有内容来显示消息,似乎没有任何东西正在捕获它。 这是我的角度代码: $scope.save = function (style) { styleAPIservice.addStyle(style).success(function () { $scope.success = “Style added successfully”; }).error(function (data, status, headers, config, statusText) { $scope.error = “An error occurred while saving style: ” + data + “|”+data.data+”|”+data.statusText+”|”+statusText; }); } 这是它调用的styleAPIservice函数: styleAPI.addStyle = function (style) { return $http.post(AppRoot + “api/StyleAPI/”, JSON.stringify(style), { headers: { ‘Content-Type’: ‘application/json’ } }); […]