【发布时间】:2012-05-17 20:20:48
【问题描述】:
我的 WebAPI 有一个 get 方法,如下所示:
private T Get<T>(string uri)
{
T result = default(T);
bool isSuccess = true;
client
.GetAsync(uri)
.ContinueWith(task =>
{
// EnsureStatus
isSuccess = task.Result.IsSuccessStatusCode;
task
.Result
.Content
.ReadAsAsync<T>()
.ContinueWith(t => result = t.Result)
.Wait();
})
.Wait();
return result;
}
结果以 JSON 格式生成,但我希望它用于 JSONP。
我读到ReadAsSync 只处理内置的媒体格式化程序。那么有没有办法改变它来处理JsonP?
【问题讨论】:
-
为什么在 .NET 客户端上需要 JSONP?
-
经常使用 JSONP 跨域拉取数据。
-
@EBarr 是的,在 javascript 和浏览器中。当您拥有成熟的 .NET 客户端时不会。如果客户端请求
application/json,服务器必须能够提供 json。这是一个内容协商问题。 -
@EBarr - 你是对的!我没有成熟的 .NET 客户端。所以这是一个内容协商问题。添加一个额外的方法来处理 Jsonp 可能会有所帮助。我阅读了有关 JsonpMediaTypeFormatter 的信息,它应该被添加到 global.asax 的 Application_Start 中。但我们不是从 global.asax 开始的。
标签: jsonp asp.net-web-api wcf-web-api