问题标签 [angular-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 - 让 $http.put() 发送正确格式的数据,而不是 JSON 对象
因此,我花了一些时间为自己正在做的一个项目构建了一个快速 API。
我使用 Chrome 的 Postman 插件来模拟 PUT 和 DELETE 任务,以确保一切正常。真的很高兴我这样做了,因为我学到了很多关于 PHP 在 PUT 和 DELETE 请求方面的缺点。
使用我与 Postman 合作的 API,我开始将所有内容转移到 AngularJs 控制器等。
我试图让用户在数据库中声明一行,因为用户的登录信息与此特定信息不同。我无法弄清楚为什么在我的数据库中声明该行的 put 请求不起作用。瞧,从我解析的数据parsestr(file_get_contents('php://input'))
有 1 个数组键,它是一个 JSON 字符串。
我看过了,我似乎无法通过 Stackoverflow 或 Google 找到可靠的答案(也许我在配置选项中的某个地方错过了它),所以我的问题是:有什么方法可以让我$http.put
打电话发送数据正确到服务器?
javascript - 角链许多请求
我正在尝试构建一个可以获取 CSV 数据的服务,将其转换为行,然后对/从每一行发出 API 请求,将格式化的结果添加到输出字符串中。
换句话说,我的 (Coffeescript) 代码如下所示:
该$s._addToOutput()
函数使用该行正确地进行 API 调用,对其进行格式化,并将格式化的响应添加到我的输出字符串 ( $s.output
)。基本上,是这样的:
问题是我的输出字符串中格式化响应的顺序似乎是随机/可变的。对于某些行,API 看起来比其他行需要更快/更长的时间,并且无论哪个响应首先返回,都会先添加 - 不尊重我的rows
变量的顺序。
我认为解决方案是某种 Angular 承诺链,例如:
但是我有一个不可预测的行数,我很想能够基本上只是说:“对每一行进行 API 调用,一个接一个。”
谁能想到一个好的方法来做到这一点?我现在可能只是想不通,但我很难过。
谢谢!
萨沙
编辑——试一试 ryeballar 的解决方案,但我对它的实施实际上并没有停止重新排序问题。很确定这是我的错误,所以如果有人发现任何东西,请告诉我:
(注意,我必须调整解决方案,因为我对每一行提出了两个连续的请求——第一个请求是“场地”,第二个请求是我找到的场地的“照片”。另外,yamlify
== '格式'。 )
注意 -getVenue()
只是getPhoto()
对 的调用$http
,因此它们返回响应success
、error
、then
等photoUrl()
的对象只是一个帮助函数,用于将响应对象解析为新的 API 路径。
最新努力,仍在随机重新排序——是的_getVenue
,_getPhoto
只是$http.get(path)
调用:
angularjs - AngularJS 全局 $http 状态 ajax 加载器
我有一个 AngularJS 应用程序,并且对于 $http 完成的每个请求都需要一个 ajax 加载器 - 有没有一种简单的方法可以做到这一点。
我现在的解决方案是每次调用 $http 时设置 $rootScope.loading = 1,成功时设置 $rootScope.loading = 0..
什么是“最佳实践”?
我的代码现在看起来像:
angularjs - 即使允许跨域 POST 请求也不起作用(GET 有效)
我有一个奇怪的问题。我正在使用 Angular.js 1.2.15 对此进行测试。
我想向另一个域上的 RESTful API 后端发送一个 POST 请求(我想直接使用 $http,而不是 $resource)。
这就是发生的情况:首先发送一个 OPTIONS 请求,并带有以下请求标头:
响应清楚地表明,允许来自其他来源和使用每种方法的请求:
但是,POST 请求甚至不会由浏览器(Chromium 36)发送,即它不会在开发控制台的网络选项卡中显示 POST 请求。相反,控制台中显示以下内容:
XMLHttpRequest cannot load http://myhost.com/api/maps. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://0.0.0.0:9000' is therefore not allowed access.
现在,完全奇怪的是:对同一个 API 的 GET 请求工作,并且前面没有 OPTIONS 请求(或者它可能没有显示在网络选项卡中)。
我真的不知道这里有什么问题。是 Angular 的实现吗?还是服务器配置错误?负责 API 的人告诉我,它通常适用于他们所有的网络应用程序。
我知道这是一个 CORS 问题,在这方面我绝不是专家,但是,嘿,Access-Control-Allow-Origin: *
应该做的伎俩,不是吗?
更新:它在使用 plain 时有效XMLHttpRequest
:
我退了200。这是怎么回事?
javascript - AngularJS - 提高服务调用和数据绑定性能
我有一个 Angular 服务,它可以检索一个相当大的 JSON 文件(近 10,000 行)。
我面临的问题是将数据绑定到前端需要一些时间(如预期的那样)。
样品控制器:
服务:
我的 HTML 元素上有 ng-cloak,当 dataLoaded = true 时,它被删除,因为它表明数据可以显示。
如何改进服务调用/数据绑定?拆分通话有帮助吗?
angularjs - $http服务中如何使用绑定参数?
我需要发出ajax请求。我可以做这个:
是否可以使用 $http 绑定?就像是:
angularjs - 角响应拦截器不适用于 RestAngular
我有以下代码:
切换微调器的基本拦截器。
拦截器适用于获取部分和内部角度内容的 http 请求,但不适用于 RestAngular 请求(它是 $http 的包装器)。
任何帮助深表感谢。
javascript - 通过服务获取角度http获取请求需要刷新以显示数据
我发现了许多类似的问题,但我无法将解决方案应用于我的问题。
所以在我的角度应用程序中,我正在绘制 nvd3 图表。
我正在服务中执行获取请求,我可以从浏览器中的网络看到我总是按预期获取图表数据。
问题是,当我运行grunt serve
启动我的角度应用程序时,我仍然通过 api 获取数据,但由于某种原因它们没有显示。
这只发生在我跑步时grunt serve
。但是,如果我点击刷新,在运行 grunt serve 后,数据会正确显示。
提前感谢您的帮助。
这就是我想要做的:
angularjs - 使用 Angular、Revel 和 Go 在 POST 请求中发现状态码 302
我正在为我的应用程序使用 Revel + angular。index页面是登录界面,成功后应该会跳转到dashboard.html页面。问题是,一旦我发出 POST 请求,我就会收到一个带有“响应正文”的 GET 请求,但是,我仍然在登录页面中。我正在使用 Angular 向我的宁静服务器发出发布请求。但是,每当我发出 POST 请求时,我的 POST 请求都会得到状态 302,但我的 GET 请求会获取页面的响应。
我的角度控制器
我的路线
我得到这个: POST 请求上的 302 我得到这个: GET 请求上的 200 OK 在 GET 请求(firefox 调试器)的“响应正文”上,我看到了我想要的 html 页面,但我仍然保留在索引页面中。
为什么我的应用程序在用户输入他们的登录凭据(基于我上面的代码)后没有重定向到dashboard.html(index.html->dashboard.html)?
angularjs - 修改 $http 代码为 promise
这是我正在处理的代码。
问题是 $scope.results 在函数正常工作时为空。有人说这是由于 $http 的异步特性。您可以修改代码以使用 promise 来避免错误吗?
现在我更新了代码,如图所示
但它仍然显示错误
159线点到线