Tag: angularjs

Angular SPA与API Gateway的任何访问控制允许方法不一致

我们目前正在为我们的API使用无服务器部署模型,并使用NodeJS快速代码库。 所有这一切都很好,直到我们遇到了无服务器创build的CloudFormation堆栈的硬性限制,其创build的资源限制为200。 尝试解决这个问题的同时,无服务器团队正在进行嵌套堆栈集成,是用ANYreplaceGET,PUT,POST,DELETE一个单一的路由,在CloudFormation资源中大约节省了75%。 API网关看起来很好,OPTIONS路由的集成响应返回了Access-Control-Allow-Methods: 'OPTIONS,ANY' 。 用邮差testing这个工作就像一个魅力,能够使用所有以前提到的方法,而不是一帆风顺。 从我们的Angular前端执行此操作似乎不起作用。 XMLHttpRequest无法加载。 预检响应中的访问控制 – 允许 – 方法不允许方法PUT。 在Angular的眼里,POST,PUT,DELETE,…都不符合ANY,而邮递员却是这样。 任何input为什么这可能会发生将不胜感激。 UPDATE 一个POST请求通过Angular应用程序工作,只是PUT和DELETE请求抛出'访问控制允许的方法不允许的'错误。

Gulp生产build设终止

我正在使用angular1.4.14,凉亭1.8.0和npm 3.6.0。 我已经使用了下面的yeoman生成器, https://github.com/dustinspecker/generator-ng-poly ,来设置我的项目。 当我运行“gulp”cmd时,我有充分的web-ui准备好在开发模式。 但是,当我试图通过'gulp –stage prod'生成生产版本,在缩小模板之前终止没有任何日志。 查找下面生成的最后一个日志, [22:29:06] ESLint found no problems in 1 file [22:29:06] Finished 'markup' after 2.29 s [22:29:06] Starting 'scripts'… [22:29:13] gulp-imagemin: Minified 26 images (saved 109.57 kB – 12.9%) [22:29:13] Finished 'scripts' after 6.69 s [22:29:13] Finished 'images' after 8.73 s user@user:frontend$ 我在此之前检查了所有的控制台日志,没有显示任何错误或致命的错误消息。 相同的代码在开发模式下工作。 我怎么知道什么是生产build设失败?

在Karma的跑步者中包含Jasmine-node文件

目前,我有一组node.js Javascript文件,这些文件是一组“常规”Javascript文件,我将把它们发送到浏览器,使用Angular作为客户端框架。 对于unit testing,我使用茉莉花节点来testing服务器,并使用茉莉花通过Karma为我的客户端文件。 有没有一种方法可以将我的茉莉花节点文件包含到Karma中以拥有一个testing运行器?

用户使用Passportjs从Angularjs(http get / resource)进行身份validation

我试图用Angular的Passportjs和expression。 我正在尝试在passportjs中testingfacebook策略。 身份validation似乎成功,但不会导航到callbackURL。 这个剧本挂了。 Firebug控制台显示:GET http:// localhost:7000 / auth / facebook 302 Moved Temporarily 它然而,当我手动点击这个url,但不会自动redirect在浏览器窗口中成功打开callbackurl(索引) 我的login视图(玉)看起来如下: a(href='/auth/facebook') p Login 而服务器端路由是: app.get('/auth/facebook', passport.authenticate('facebook')); app.get('/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }), function(req, res) { res.render('index'); }); 请帮助。 这是我第一次使用Angularjs&Node js 编辑 :更确切地说,这个问题只发生在我的请求是从客户端(Angular的login页面)到我的快递服务器。 如果我从快递内部提供login页面,则不存在任何问题。 authentication通过,并按预期重新导向到我的应用程序。 当服务器使用passportjs处理身份validation时,我们能不能从客户端(使用http get / post)向服务器发送身份validation请求?

AngularJS – 访问节点/快速会话信息

我正在使用Express和Passport进行身份validation和授权的节点应用程序,并且所有这些都正常工作。 然而,我很困惑,我将如何在Angular控制器中获得当前用户(由Passport设置为req.user)。 我希望能够做正常的事情,如显示在标题/导航栏(除其他事项)的用户名,我目前正在使用Jade视图引擎,但我不喜欢混合使用Jade视图引擎一些“数据绑定”和Angular为他人。 现在,我知道我可以很容易地调用一个节点的api端点,它将req.user作为JSON返回,但这看起来像一个丑陋的解决scheme,因为每当有页面加载时,不是SPA)。 所以我的问题基本上是这样的:我可以在我的Angular视图中获取当前login的用户,所以我可以做我所有的数据绑定客户端而不是一些服务器端(与Jade视图引擎)和一些客户端与Angular? 注意:没有代码片断,因为一切实际上都按预期工作,我只是希望有一个比我目前有更好的select。

PassportJs。 我怎样才能得到Facebook的redirecturi没有redirect用户后调用passport.authenticate('脸谱')

我有一个NodeJs REST服务,我们把它叫做NodeRest在我的后端和AngularJs在我的前端。 假设NodeRest与移动应用程序以及Web应用程序一起使用,这是AngularJs应用程序。 NodeRest的体系结构在使用PassportJs时应该解决以下问题: 服务器不应该将用户redirect到Facebook来授权何时 app.get('/auth/facebook', passport.authenticate('facebook')); 已被调用。 如果要redirect它,客户端将不会得到任何东西,因为callbackURL链接到NodeRest httpL // noderest / facebook / callback。 相反,它应该提供redirect的URI,所以我可以把它发回客户端(angularJs,移动等…)。 这样的笑话: app.get('/auth/facebook', passport.authenticate('facebook', function(redirectUri){ //emit socket event to the client with redirect uri as a response data. })); 我在授权过程中决定使用socket.io作为通信通道。 客户: var socket = io.connect(baseUrl); socket.on('auth:facebook:callback:getCalled', function (data) { // callback get called on server side. // user has […]

从AngularJS发布到Amazon S3时发生错误

我在MEAN(MongoDB,Express,AngularJS,node.js)堆栈上构build一个应用程序,需要将图像file upload到Amazon S3。 我正在以如下方式进行: 首先,http get被发送到我的API,它指定交互的“策略文档”并将其返回给AngularJS前端。 后端代码如下所示(填充variables): exports.S3Signing = function(req, res) { var bucket = "MY_BUCKET_NAME", awsKey = "MY_AWS_KEY", secret = "MY_SECRET", fileName = req.params.userId, expiration = new Date(new Date().getTime() + 1000 * 60 * 5).toISOString(); var policy = { "expiration": expiration, "conditions": [ {"bucket": bucket}, {"key": fileName}, {"acl": 'public-read'}, ["starts-with", "$Content-Type", ""], ["content-length-range", 0, […]

string的Javascript数组转换为对象数组

我从服务器发送string数组: Node.JS + Express.JS app.get('/url', function (req, res) { res.send(["item1", "item2", "item3"]); }) 但是在前端,我收到了一些对象: Angular.JS SomeResource.query(function (data) { console.log(data); }); 在控制台中 0: Resource 0: "i" 1: "t" 2: "e" 3: "m" 4: "1" $$hashKey: "008" __proto__: Resource 1: Resource 0: "i" 1: "t" 2: "e" 3: "m" 4: "2" $$hashKey: "009" __proto__: Resource 2: Resource […]

Angularjs,file upload和IE9

在Angularjs / Nodejs应用程序中有file upload问题。 我实现了这个angular度file upload指令。 使用它,file upload工作在所有现代浏览器,但在IE9失败。 通过“失败”我的意思是,它的行为就像它的工作…我可以loggingfile upload进度,并看到它逐步达到100%,成功处理程序触发成功的日志消息(没有在触发error handling程序),但该文件永远不会出现在上传目录中(在同一台机器上)。 没有任何控制台错误,我设置上传目录权限为777,以排除这一点。 我发现的东西是closures的…首先,IE9上传的文件永远不会触发我放在我的uploadPhoto函数的日志消息,所以路线似乎甚至没有打(认为上载在现代浏览器的文件会触发这些日志消息)。 此外,在上传之后,在开发人员工具的networking面板中,types的值不应该是text / html,如下所示。 (下面的地图: URL, Method, Result, Type, Received ): /path/to/upload-dir/filename.jpg GET 200 text/html 20.7kb 这是我的file upload处理程序: $scope.onFileSelect = function ($file) { $scope.ajaxVisible = true; $scope.uploadError = false; var photo = $file[0]; $scope.upload = $upload.upload({ url: '/upload/photo', file: photo, method: 'POST' }).progress(function […]

ng-view不能在AngularJS / Express中使用partials

一切正常,直到我试图在ng-view中显示一个部分文件。 /public/app/app.js angular.module('app', ['ngResource', 'ngRoute']); angular.module('app').config(function($routeProvider,$locationProvider){ $locationProvider.html5Mode(true); $routeProvider .when('/', {templateUrl: '/partials/main', controller: 'mainCtrl'}); }); angular.module('app').controller('mainCtrl', function($scope){ $scope.myVar = "Hello Angular"; }); /server/includes/layout.jade doctype html 5 html head link(rel="stylesheet", href="/css/bootstrap.css") link(rel="stylesheet", href="/vendor/toastr/toastr.css") link(rel="stylesheet", href="/css/site.css") body(ng-app="app") block main-content include scripts /server/includes/scripts.jade (版本号不在脚本中) script(type="text/javascript", src="/vendor/jquery/jquery.js") 2.1.0 script(type="text/javascript", src="/vendor/angular/angular.js") 1.2.16 script(type="text/javascript", src="/vendor/angular-resource/angular-resource.js") script(type="text/javascript", src="/vendor/angular-route/angular-route.js") script(type="text/javascript", src="/app/app.js") /views/index.jade extends ../includes/layout […]