AngularJS/CORS OPTIONS请求和性能

Ade*_*Ade 1 http cors angularjs

我在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
});
Run Code Online (Sandbox Code Playgroud)

按照标准, Angular将根据OPTIONS请求"预检" .我的服务器返回带有必需访问控制头的204头,以允许客户端继续.到现在为止还挺好.

然而,这发生在每个 POST请求之前,除非它们非常快速地连续发生,在这种情况下我可以连续几次(所以似乎有某种超时).我的应用程序是一个移动网络应用程序,所以我担心这些额外的选项请求可能会对3G(或Edge)网络的性能产生负面影响.

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

Jef*_*ard 6

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