2016-11-08 3 views
1

Я тестирую службу файлов аварийных сообщений Servicestack. Когда вы вызываете его из angularjs и запрашиваете html-файл, результаты возвращаются в качестве стандартного формата html servicestack вместо json-формата. Даже при добавлении? Format = json это работает неправильно. Я пытаюсь просмотреть html-файлы и затем пытаюсь загрузить его в редактор туза. Я думаю, что Servicestack путается с типом ответа. Я проверил, и Content-Type установлен на приложение/json на стороне клиента при выполнении запроса.Servicestack возвращает неправильный тип содержимого при возврате файла с расширением html

ответ

2

Я предполагаю, что запрос вы делаете это:

GET /files/myfile.html 

Это returing HTML, так как расширение .html файла является встроенным в зарегистрированном формате в ServiceStack поэтому предполагается, что вы явно с запросом API в HTML Формат.

Вы можете избежать этой неоднозначности, указав файл Path на QueryString, например:

GET /files?Path=myfile.html 

Который говорит ServiceStack, чтобы отправить его обратно, используя наиболее подходящий формат, как указано в заголовке Accept. Или, если вы предпочитаете вы можете также явно указать формат, добавив {.ext} в конце информации пути, например:

GET /files.json?Path=myfile.html 

Другой вариант, если вы не используете ServiceStack встроенный в HTML поддержка, чтобы удалить не HtmlFormat Plugin, например:

Plugins.RemoveAll(x => x is HtmlFormat); 

Whicih сделает .html больше не зарегистрированный формат, так что расширение .html будет доброкачественной.

Примечание: удаление HtmlFormat также удаляет встроенные функциональные возможности HTML, как его auto HTML pages