[英]AngularJS / CORS OPTIONS request and performance
我在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
});
按照標准的 Angular會使用OPTIONS
請求“預檢”此OPTIONS
。 我的服務器返回帶有必要訪問控制標頭的204標頭,以允許客戶端繼續。 到現在為止還挺好。
但是,這會在每個 POST
請求之前發生,除非它們連續非常快地發生,在這種情況下,我可以連續獲取一些(因此似乎有某種超時的可能)。 我的應用程序是移動網絡應用程序,因此我擔心這些額外的選項請求可能會對3G(或Edge)網絡的性能產生負面影響。
我的問題是:服務器對選項請求的響應是否可以向客戶端表明它可以將規則存儲更長的時間?
Angular不需要此配置-您的服務器需要在OPTIONS
請求上添加適當的緩存頭。 請參閱: https : //developer.mozilla.org/zh-CN/docs/HTTP/Access_control_CORS#Access-Control-Max-Age
如果您願意稍微更改API,以便將公共端點視為“簡單請求”,則也可以完全避免預檢請求。
我有一篇文章介紹了所有限制,以及如何克服這些限制,稱為“將策略與績效掛鈎的兩種策略” 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.