目前在我的Web API中提到的类实现了
public class ServiceStackTextFormatter : MediaTypeFormatter
{
public ServiceStackTextFormatter()
{
JsConfig.DateHandler = JsonDateHandler.ISO8601;
SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
SupportedEncodings.Add(new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true));
SupportedEncodings.Add(new UnicodeEncoding(bigEndian: false, byteOrderMark: true, throwOnInvalidBytes: true));
}
}
我只想知道如何在ServiceStack中实现JSNOP,我知道我们可以使用Newtnsoft json实现它。我尝试过使用下面提到的代码并且工作正常。
public class FormatterConfig
{
public static void RegisterFormatters
(MediaTypeFormatterCollection formatters)
{
var jsonFormatter = formatters.JsonFormatter;
jsonFormatter.SerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
formatters.Insert(0, jsonFormatter);
var jsonpFormatter =
new JsonpMediaTypeFormatter(formatters.JsonFormatter);
formatters.Insert(1, jsonpFormatter);
}
}
所以我只想知道如何使用ServiceStack实现目标?
答案 0 :(得分:3)
?callback=cb
,ServiceStack已经为所有服务内置了JSONP支持,例如:http://techstacks.io/overview?callback=cb
将JSON响应包装在指定的JS回调中,例如:
cb({...})