问题标签 [angularjs-http]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 我们如何测试非范围角度控制器方法?
我们在 Angular 控制器中没有几个方法,它们不在范围变量上。
有谁知道,我们如何在 Jasmine 测试中执行或调用这些方法?
这是主要代码。
现在在我的 jasmine 测试中,我们正在传递“handleSuccessOfAPI”和“handleFailureOfAPI”方法,但这些都是未定义的。
这是茉莉花测试代码。
angularjs - 将多个参数传递给 $http.post?
我正在尝试使用以下网址发出发布请求以将数据保存在服务器中:
我想传递projectId 和scenarioId。如何使用 $http.post 做到这一点?
angularjs - Angular Js - 在标头默认设置令牌
我试图将带有访问令牌的标头添加到每个 API 调用。它适用于所有 GET 请求,但是一旦我尝试进行 POST,就不会添加标头。
这是我添加令牌的方法:
从这里调用:
我试过这样做:
但这也行不通。它仅在我更改标题键名称时有效,如下所示:
如何为帖子分配默认标头并在 AngularJs 中获取请求?
angularjs - AngularJS奇怪的CORS问题取决于调用POST的方法
很简单!为什么这不起作用:
然而这确实!
我在第一个例子中得到了 401 未授权!第二个作品就像一个魅力..
javascript - AngularJS 1.2 $http 似乎在没有数据传递时缓存 POST 请求
我在使用$http
服务的 AngularJS 1.2 POST 请求时遇到问题。
单击按钮时,我会触发一个 POST 请求,如下所示:
我的问题是,如果我在按钮上单击两次并且第一个回调尚未触发,则只会发出一个 HTTP 请求,但我的回调会被触发两次(使用相同的数据作为参数)。
如果我明确添加缓存:false:
然后按我的预期发出两个请求。
对我来说它看起来像一个错误。为什么有人要缓存 POST 请求?此外,AngularJS 文档指定我们必须传递 cache: true 如果我们想为 GET 请求激活缓存。听起来默认情况下它是不活动的,对于 POST 请求根本不活动(这对我来说很有意义)。
有没有办法在 1.2 分支上为每个请求一劳永逸地停用缓存?我没有找到。
编辑
我误用了$http.post
。第二个参数不是选项映射,而是要发送到服务器的数据。根据文档,此参数是必需的。所以我可以执行这个:
它按预期工作。
所以真正的问题是:为什么调用正常工作的data
参数是强制性的?$http.post
我觉得我错过了一些关于 HTTP 的东西。我已经在 URL 中拥有了我需要的一切(类似于company/company_id/employee
),我不需要任何额外的数据。
angularjs - Angularjs 存根开发 - $http 调用以及 $httpBackend
我正在使用 angularjs 进行存根开发。我的存根是服务器上的 JSON 文件。所以,我在“存根”函数中调用 $http 来获取存根。然而,由于 $http 是异步的,whenGET 总是返回空数据(它不等待 http 完成)。我调查了有关此主题的当前问题。它们提供了将 http 调用的返回值分配给范围数据模型的方法。我想在http请求完成后返回数据。下面是代码。
基本上,我希望行 whenGET 等到填充 tempData 。get 函数中的 tempData 在 whenGET 方法运行后记录在控制台中。
ios - AngularJS 中的 $http 错误处理
我的 AngularJS 项目中的 $http 无法识别 iOS 上的 40X(401,403,405...) 错误。我正在使用 1.2.10 AngularJS 版本和 Cordova 3.4.0 版本。
下面是我正在使用的代码:
data.status
正在返回 0 并且状态返回未定义。请帮我解决这个问题。
试图将域包含在 IOS 的白名单中。但没有解决方案 :( 它仍然给出相同的响应。
但是相同的代码在 Android 中运行得非常好。请帮我解决这个问题。
提前致谢 :)
angularjs - AngularJS:控制器范围不会与承诺同步
我已经拿起了一个项目,我正在尝试将一些数据从服务返回到我的控制器。我已经在这里待了大约 12 个小时,并尝试了不同的方法。它们通常都会导致这种“缺失数据”。
我试过了
- 使用 $resource 而不是 $http
$http.get
在不使用承诺的情况下将权利放在控制器内- 服务作为实际服务(而不是工厂),没有回报
- 建立工厂一堆不同的方式来返回各种格式的数据
- 使用 setTimeout 和 $apply
我觉得我现在拥有的东西很简单,而且我读过的所有内容都说这应该可行
angularjs-load-data-from-service
angularjs-promises-not-firing-when-returned-from-a-service
angularjs-promise-not-resolving-properly
这些链接是从今天开始的。
我认为可能存在 $scope 问题,因为过去我看到 $scopes 在使用多个控制器时无法获取数据,但是该站点只是在index.html中声明了一个控制器作为<body ng-app="myApp" ng-controller="BodyCtrl">
设置。主要的app.js使用状态(我相信来自 ui-router)......
将控制器附加到不同的页面。此外,该站点还有一些其他控制器从服务中获取数据,我首先将其作为模板查看,但是,那里的数据和返回比我想要得到的要复杂得多。不过,最重要的是,控制器正在访问服务提供的数据。他们都在使用 $resource,这就是我从这个问题开始的方式。我一直坚持使用 $http,因为它应该可以工作,而且我想在我进入“更高级别”之前让它与它一起工作。另外,我只需要从端点获取,所以觉得 $resource 有点矫枉过正。
服务
控制器
控制台日志
所以这是我的控制台日志,我可以得到这么多,只是不是实际数据!这就是我需要的。我什至发疯了,并扩展了我.then(function (data) {
的功能以捕获控制器中需要的所有功能$scope.data
。那是火车残骸。
据我所知,这应该可行,但我不确定问题可能出在哪里!也许我不明白 Promise 是如何工作或解决的。我之前在另一个项目中使用过 Angular,但我一开始就在那里,并且了解它是如何组合在一起的。这个项目的结构不同,感觉更加混乱。我想简化它,但我什至似乎无法获得一些简单的数据来返回!
感谢您在确定为什么这不起作用时提供的任何帮助/反馈,谢谢!
编辑:所以问题是,为什么会console.log("data", $scope.data)
在承诺之前返回 null/?
在控制器再往下一点我有这个
它似乎无权访问数据。
EDIT2:我添加了$http.get
我在控制器内部使用的,以及它的控制台日志和我需要的实际$scope.data
forEach
编辑3:
更新服务
更新的控制器
所以$scope.testData
需要在视图中使用(nvd3图表),它没有获取数据。
解决方案
angularjs - 在 AngularJS 中使用带有 Promises 的 success/error/finally/catch
我$http
在 AngularJs 中使用,我不确定如何使用返回的承诺和处理错误。
我有这个代码:
这是一个好方法,还是有更简单的方法?
angularjs - AngularJS $http 成功但不工作
我正在使用 angularJS 和 SLIM PHP restful 服务器,PHP 服务正在运行,实际上我已经使用 $http.get() 在这个应用程序中没有任何问题......但是现在发生了一件奇怪的事情,我创建了一个新函数与其他人一样,它得到 .success(function(data)) 没有问题,我实际上可以 console.log(data) 并显示正确的结果,但是当 .success() 完成并返回时,我收到未定义的结果。ps:浏览器控制台没有错误。
- success() 中的 Console.log() 返回正确的数据
- loadMarkers() 后的 Console.log() 返回 undefined