问题标签 [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.

0 投票
1 回答
896 浏览

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打电话发送数据正确到服务器?

0 投票
1 回答
367 浏览

javascript - 角链许多请求

我正在尝试构建一个可以获取 CSV 数据的服务,将其转换为行,然后对/从每一行发出 API 请求,将格式化的结果添加到输出字符串中。

换句话说,我的 (Coffeescript) 代码如下所示:

$s._addToOutput()函数使用该行正确地进行 API 调用,对其进行格式化,并将格式化的响应添加到我的输出字符串 ( $s.output)。基本上,是这样的:

问题是我的输出字符串中格式化响应的顺序似乎是随机/可变的。对于某些行,API 看起来比其他行需要更快/更长的时间,并且无论哪个响应首先返回,都会先添加 - 不尊重我的rows变量的顺序。

我认为解决方案是某种 Angular 承诺链,例如:

但是我有一个不可预测的行数,我很想能够基本上只是说:“对每一行进行 API 调用,一个接一个。”

谁能想到一个好的方法来做到这一点?我现在可能只是想不通,但我很难过。

谢谢!

萨沙

编辑——试一试 ryeballar 的解决方案,但我对它的实施实际上并没有停止重新排序问题。很确定这是我的错误,所以如果有人发现任何东西,请告诉我:

(注意,我必须调整解决方案,因为我对每一行提出了两个连续的请求——第一个请求是“场地”,第二个请求是我找到的场地的“照片”。另外,yamlify== '格式'。 )

注意 -getVenue()只是getPhoto()对 的调用$http,因此它们返回响应successerrorthenphotoUrl()的对象只是一个帮助函数,用于将响应对象解析为新的 API 路径。

最新努力,仍在随机重新排序——是的_getVenue_getPhoto只是$http.get(path)调用:

0 投票
2 回答
2323 浏览

angularjs - AngularJS 全局 $http 状态 ajax 加载器

我有一个 AngularJS 应用程序,并且对于 $http 完成的每个请求都需要一个 ajax 加载器 - 有没有一种简单的方法可以做到这一点。

我现在的解决方案是每次调用 $http 时设置 $rootScope.loading = 1,成功时设置 $rootScope.loading = 0..

什么是“最佳实践”?

我的代码现在看起来像:

0 投票
1 回答
510 浏览

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。这是怎么回事?

0 投票
1 回答
246 浏览

javascript - AngularJS - 提高服务调用和数据绑定性能

我有一个 Angular 服务,它可以检索一个相当大的 JSON 文件(近 10,000 行)。

我面临的问题是将数据绑定到前端需要一些时间(如预期的那样)。

样品控制器:

服务:

我的 HTML 元素上有 ng-cloak,当 dataLoaded = true 时,它​​被删除,因为它表明数据可以显示。

如何改进服务调用/数据绑定?拆分通话有帮助吗?

0 投票
1 回答
39 浏览

angularjs - $http服务中如何使用绑定参数?

我需要发出ajax请求。我可以做这个:

是否可以使用 $http 绑定?就像是:

0 投票
1 回答
693 浏览

angularjs - 角响应拦截器不适用于 RestAngular

我有以下代码:

切换微调器的基本拦截器。

拦截器适用于获取部分和内部角度内容的 http 请求,但不适用于 RestAngular 请求(它是 $http 的包装器)。

任何帮助深表感谢。

0 投票
1 回答
216 浏览

javascript - 通过服务获取角度http获取请求需要刷新以显示数据

我发现了许多类似的问题,但我无法将解决方案应用于我的问题。

所以在我的角度应用程序中,我正在绘制 nvd3 图表。

我正在服务中执行获取请求,我可以从浏览器中的网络看到我总是按预期获取图表数据。

问题是,当我运行grunt serve启动我的角度应用程序时,我仍然通过 api 获取数据,但由于某种原因它们没有显示。

这只发生在我跑步时grunt serve。但是,如果我点击刷新,在运行 grunt serve 后,数据会正确显示。

提前感谢您的帮助。

这就是我想要做的:

0 投票
0 回答
475 浏览

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)?

0 投票
3 回答
310 浏览

angularjs - 修改 $http 代码为 promise

这是我正在处理的代码。

问题是 $scope.results 在函数正常工作时为空。有人说这是由于 $http 的异步特性。您可以修改代码以使用 promise 来避免错误吗?

现在我更新了代码,如图所示

但它仍然显示错误

控制台输出

159线点到线