我的页面上有一些cookie,我需要保存它并通过页面刷新加载。保存工作正常,但是当我尝试刷新时。我得到" HTTP错误400.请求标头的大小太长",我在cookie中有7-8个cookie文件,它们的摘要大小约为~18kb。 我需要在cookie中保存一个太大的对象,然后将其拆分为数组。然后我把它写入cookieStore(它工作正确)
$scope.cookieDataSavePrepare = function(data) {
var answerArray = JSON.stringify(data).match(/(.|[\r\n]){1,2048}/g);
for (var i = 0; i < answerArray.length; i++) {
$cookieStore.put('dataPart' + i, answerArray[i]);
}
$cookieStore.put('dataPartsNumber', answerArray.length);
};
$scope.cookieDataLoadPrepare = function() {
var dataLoad = [];
for (var i = 0; i < $cookieStore.get('dataPartsNumber'); i++) {
var file = 'dataPart' + i;
dataLoad.push($cookieStore.get(file));
};
return dataLoad.join('');
};
$scope.checkData=function() {
$window.localStorage.setItem('checkData', $scope.cookieDataLoadPrepare());
}
$scope.saveTestsToCookieStore = function () {
$scope.cookieDataSavePrepare($scope.data);
$cookieStore.put('answeredQuestions',JSON.stringify($scope.answeredTests));
$cookieStore.put('questionStopped',$scope.currentQN);
}
我该如何管理?
答案 0 :(得分:0)
使用localStorag。或pouchDB。 因此50 cookies per domain, and 4093 bytes per domain.
最大网址长度为de facto limit of 2000 characters
但是你的数据是18kb是18000字节,超过4093字节
1个字符= 2个字节,因此18000/2 = 9000个字符超过最大网址长度