我在 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/