Кодирование Base64 будет работать технически, однако, будьте осторожны, это создаст дополнительную нагрузку на:
- Сервер: время вычислений для фактического кодирования значения
- Клиент: кто-то должензначение декодирования, опять же, это требует времени / ресурсов ЦП
- Сеть, только потому, что закодированные в base64 данные по размеру больше (~ 30%), чем исходный поток байтов.См. Этот SO-вопрос и ответ, чтобы понять, почему
Кроме того, поскольку один из проектов, над которыми я работал, имеет эту функцию, очень неудобно использовать JSON, подобный этому (копировать и распространять).и т. д.)
Если это, тем не менее, приемлемое решение, воспользуйтесь им, оно сработает, и вы не потеряете данные или что-то в этом роде.
Однако есть и другие подходы:
Очевидно - разделите запросы, возможно, с учетом соображений, которые я изложил выше, вы придете к выводу, что два обращения к серверу, один из которых вернет JSON, а другой файл Excel, будут работать лучше.
Используя какой-то многочастный смешанный ответ, при таком подходе вы получаете один вызов, однако, это не то, как справиться с этим на стороне клиента, я не знаю, поддерживает ли angular / browser вообще это.