2016-11-08 21 views
1

我正在測試Servicestack Rest Files服務。當從angularjs調用它並要求返回一個html文件時,結果將作爲標準的servicestack html格式而不是json格式返回。即使在追加?format = json時,它也無法正常工作。我正在嘗試瀏覽html文件,然後嘗試將其加載到ace編輯器中。我認爲Servicestack與響應類型混淆。在執行請求時,我檢查並將Content-Type設置爲客戶端上的application/json。當使用html擴展返回文件時,Servicestack返回錯誤的內容類型

回答

2

我假設你正在做的要求是:

GET /files/myfile.html 

它returing HTML因爲.html文件擴展名是內置註冊格式在ServiceStack所以假設你明確請求格式爲HTML格式的API。

您可以通過指定查詢字符串的文件Path,e.g避免這種模糊性:

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