如何根据web api请求提供客户端想要json响应还是jsonp的选项



我开发了一个web api,在其中我为这样的主机实现了jsonp

 var jsonpFormatter =
                new JsonpMediaTypeFormatter(formatters.JsonFormatter);
 formatters.Insert(0, jsonpFormatter);

我可以使用jsonp使用下面提到的请求来消费它

 $.ajax({
            type: 'GET',
            url: "http://localhost:61734/api/baseapi",
            callback: 'returnCallBack',
            contentType: "application/json",
            dataType: 'jsonp'
        });

我的问题是,我们如何制作我们的api,它可以根据请求识别响应应该是json还是jsonp。有人能帮我吗?根据我的请求API给我json或jsonp响应。

有几个nuget包可以帮你做到这一点,所以你不必重新发明轮子。例如WebApiContrrib.Formatting.JsonP

如果你不想使用另一个库,那么他们所做的基础是创建一个新的MediaTypeFormatter,它将检查回调参数的请求,指示它是JsonP,并用"Callbackname("+json+");"

包装串行响应

最新更新