我正在测试Servicestack Rest Files服务。当从angularjs调用它并要求返回html文件时,结果将以标准servicestack html格式而不是json格式返回。即使附加?format = json,它也无法正常工作。我正在尝试浏览html文件,然后尝试将其加载到ace编辑器中。我认为Servicestack对响应类型感到困惑。我检查过,在执行请求时,Content-Type在客户端设置为application / json。
答案 0 :(得分:2)
我假设您正在提出的请求是:
GET /files/myfile.html
由于.html
文件扩展名是ServiceStack中的内置注册格式,因此它正在撤销HTML,因此它假设您显式请求API中的API HTML 格式。
您可以通过在QueryString上指定文件Path
来避免这种歧义,例如:
GET /files?Path=myfile.html
告诉ServiceStack使用Accept
标头中指定的最合适的格式将其发回。或者如果您愿意,也可以通过在路径信息末尾添加{.ext}
来明确指定格式,例如:
GET /files.json?Path=myfile.html
另一个选择,如果您不使用ServiceStack的内置HTML支持,则删除HtmlFormat插件,例如:
Plugins.RemoveAll(x => x is HtmlFormat);
Whicih将.html
不再是注册格式,因此.html
扩展名将是良性的。
注意:删除HtmlFormat也会删除内置HTML功能,例如auto HTML pages