AngularJS/CORS OPTIONS 请求和性能

标签 angularjs http cors

我在 AngularJS 中进行跨域 CORS POST 请求,如下所示:

var url = 'https://api.myapp.tld';
var userObj = { username:'foo', password: 'bar' };

$http.post(url,userObj).success(function(data){
  // do success stuff
}).error(function(data){
  // do FAIL stuff
});

根据 the standard Angular 将使用 OPTIONS 请求对此进行“预检”。我的服务器返回一个 204 header ,其中包含必要的访问控制 header 以允许客户端继续。到目前为止一切顺利。

但是这发生在 every POST 请求之前,除非它们快速连续发生,在这种情况下我可以连续获得一些(所以似乎有某种也许超时)。我的应用程序是一个移动网络应用程序,所以我担心这些额外的选项请求可能会对 3G(或边缘)网络的性能产生负面影响。

我的问题是:服务器对选项请求的响应是否可以向客户端表明它可以将规则存储更长的时间?

最佳答案

Angular 不需要此配置——您的服务器需要在 OPTIONS 请求上添加适当的缓存 header 。请参阅:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Max-Age

关于AngularJS/CORS OPTIONS 请求和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235591/

相关文章:

javascript - 如何在 AngularJS 中创建完整的 html 表?

angularjs - 在单个 http 请求中使用与每个文件相关的元数据上传多文件

angularjs - Angular/Node/Express/Passport 跨域问题 - 启用 CORS Passport Facebook 身份验证

java - 在java中的AWS lambda函数中包含访问控制 header

javascript - CORS 奇怪的行为

javascript - 防止捏合后发生拖动事件

angularjs - 范围变量不使用 ng-change 更新 - angularjs

javascript - AngularJS $watch 多个项目

php - Symfony ajax 响应但带有 header : HTTP/1. 0 200 OK Cache-Control: no-cache Date

ios - 使用 AFNetworking 2.0 对数据进行 PUT 请求