Я использую ngx-cookie-service стороннюю службу cookie с angular 7. Я пытаюсь установить строку cookie, например id = 111 & name = угловой, но angular измените ее на id% 3D111% 26name% 3Dangular.
import { CookieService } from 'ngx-cookie-service';
export class CookieComponent{
constructor(private cookieService: CookieService) {
this.setCookie();
}
setCookies() {
let cookieStr: string = "id=111&name=angular";
this.cookieService.set('cookieName', cookieStr);
//this set cookieName=id%3D111%26name%3Dangular in browser
}
getCookies() {
let cookie = this.userService.cookieService.get('cookieName');
//this returns cookieName=id=111&name=angular
}
}
но мне нужно получить cookie из бэкенда, но C# не декодирует его автоматически, а angular делает.
теперь, как пропустить эту угловую кодировку по умолчанию для этой строки cookie
попробуйте установить cookie с помощью encodeURI("id=111&name=angular")
вы имеете в виду вот так this.cookieService.set ('cookieName', encodeURI (cookieStr)); это не работает
@Faisal Вы хотите, чтобы cookieName значение "id = 111 & name = angular" вместо "id% 3D111% 26GUID% 3Dangular" в браузере?
да именно то, что я хочу
Что вы используете для внутреннего кода? Это веб-API C#?
C# но я не могу там изменить, я хочу сделать его читаемым на C# с помощью angular





ngx-cookie-service не предоставляет возможность удаления функции кодирования / декодирования.
Как вы можете видеть на снимке экрана ниже, каждый запрос имя cookie и значение cookie будет преобразован в закодированную строку.
cookie.service.js (node_modules / ngx-cookie-сервис / cookie-сервис)
Есть два способа использовать:
1-й, Я не рекомендую этот способ, но вы можете удалить метод encodeURIComponent.
e.g. var cookieString = name + '=' + value + ';';
Во-вторых, вы можете использовать Веб-утилита для декодирования на поддерживаемой стороне (WebAPI).
e.g. string cookieString = WebUtility.UrlDecode("id%3D111%26name%3Dangular");
но если отредактировать код, как ваш первый вариант, будет ли это работать на сервере?
Вы пробовали? Если вы опубликуете свой код в локальном IIS, он будет работать.
на localhost это определенно сработает, но если я опубликую это на лазурном сервере, будут ли работать изменения в пакете? Я думаю, что нет, потому что мы никогда не загружаем файлы этих узловых модулей. как заставить его работать и на сервере?
Извините, но я ничего не знаю о хостинге Azure. Вы должны задать этот вопрос с помощью тега хостинга Azure, чтобы специалисты могли связаться с вами.
ngx-cookie теперь имеет флаг опции для использования незакодированных символов, добавьте storeUnencoded: true к опциям. Вот пример: this._cookieService.put ('cookiekey', '[email protected]', {'expires': expireDate, storeUnencoded: true});
@swestfall Да, вы правы, но это ngx-cookie. Спрашивающий может использовать это было бы здорово, но, согласно его вопросу, он использовал ngx-cookie-service, а это отличается от ngx-cookie.
Вы можете нам показать? Как вы установили cookie и как вы получаете значение cookie и результат вывода? Расскажите подробнее.