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