gpt4 book ai didi

jsonp - 如何使用 Web API 处理 JSON?

转载 作者:行者123 更新时间:2023-12-01 01:18:48 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
JSONP with MVC 4 WebApi



我的 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只处理内置的 mediaformatters。那么有没有办法改变它来处理 JsonP?

最佳答案

大肆窃取 this duplicate ....

要完成你想要的,你需要三件事:

  • 添加 media formatter输出 JSONP
  • 注册媒体格式化程序(传统上通过 global.asx 完成)
  • 确保客户端请求jsonP。

  • 你可以窃取这个 JSONP 媒体 formatter .

    然后,您需要注册媒体格式化程序。您可以使用以下代码片段以编程方式执行此操作:
    var config = GlobalConfiguration.Configuration;
    config.Formatters.Insert(0, new JsonpMediaTypeFormatter());

    由于您显然不使用 global.asax,因此您需要确保以某种方式注册了格式化程序。你没有提供足够的关于如何做的信息,但我怀疑一个明智地放置的 IF 语句和一个指示注册的静态变量会让你到达那里。

    我仍然不太清楚您使用的是哪种类型的客户端,但是如果它是 jquery,则类似以下内容的内容会让您到达那里:
    $.ajax({
    url: 'http://myurl.com',
    type: 'GET',
    dataType: 'jsonp',
    success: function (data) {
    alert(data.MyProperty);
    }
    })

    重要的部分是 accept发送的 header 与您 Shiny 的新 jsonp 格式化程序正在监听的接受 header 相匹配。我认为前两个选择是: application/javascripttext/javascript .

    关于jsonp - 如何使用 Web API 处理 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514047/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com