我有一個場景,其中一個請求的響應將在響應頭中包含一個令牌,並且我需要將此令牌附加到隨後的任何其他請求。 有什麼建議嗎?同步發送http請求
無法使用承諾,因爲請求的順序沒有定義,可以以任何隨機順序。
下面是我的$ HTTP POST代碼:
var appURL = '';
appURL = serverURL + $backendApis[apiName] + "/?_s=" + $http.defaults.headers.common['Session-Alias'];
return $http.post(appURL, postParams).success(function(response, status, headers, config) {
$http.defaults.headers.common['Custom-Access-Token'] = headers('Custom-Access-Token');
if (response.errorCode && response.errorCode != "8233" && response.errorCode != "506717") {
alert("Sorry, we are not able to provide you a quotation at this stage as we are facing a technical issue. Please get back after sometime to issue a quotation or call us. Sorry for the inconvenience");
}
});
我只需要等待我的下一個請求開火,直到我沒有得到respons EOF的第一個。 已嘗試使用ajax並將async設置爲false,但不好的部分是它凍結了整個chrome的U.I,給用戶帶來不好的體驗。
在此先感謝。
同步http請求將始終阻止用戶界面,因此無法通過同步請求阻止該請求,因爲您會阻止任何JavaScript執行,直到響應。我相信你應該更好地解釋後來的請求是如何被解僱的,但是一般來說並且只有很少的數據,我相信你可以設置一些互斥體來阻止任何其他http請求觸發,直到完成第一個「主」請求。 – Sergeon
你的意思是'請求的順序未定義'是什麼意思? ..給你的令牌必須是第一個被解僱的人..對嗎? – Disha
@Sergeon能否請你指導我如何設置互斥鎖? – TechHunger