【问题标题】:WEB API HttpResponseMessage return JSONPWEB API HttpResponseMessage 返回 JSONP
【发布时间】:2015-02-21 10:32:19
【问题描述】:

我使用以下方法创建一个 HttpResponseMessage 对象并通过我的 Web API 项目返回它:

public HttpResponseMessage CreateHttpResponseMessage(string message, HttpStatusCode httpStatusCode)
{
    var stringContent = new StringContent(message, new UTF8Encoding(), "application/javascript");
    return new HttpResponseMessage(httpStatusCode)
        {
            Content = stringContent
        };
}

我正在使用它来返回一个 jsonp 有效负载,但它一直以内容类型 text/plain 而不是 application/javascript 返回。这导致浏览器控制台记录此警告:

资源解释为脚本但以 MIME 类型 text/plain 传输

我返回的消息不是 null 或空的,因此我很困惑它为什么会这样。

【问题讨论】:

    标签: c# .net asp.net-web-api jsonp


    【解决方案1】:

    您不能像尝试返回一样以纯文本形式返回 JSONP

    您需要将 Web API 配置为使用 JSONP MediaTypeFormatterWebApiContrib 中提供了这样的格式化程序。

    Install-Package WebApiContrib.Formatting.Jsonp
    

    添加到Application_Start:

    GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));
    

    资源:
    http://stevenhollidge.blogspot.in/2013/03/how-to-return-jsonp-from-webapi.html
    http://www.codeproject.com/Tips/631685/JSONP-in-ASP-NET-Web-API-Quick-Get-Started

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2019-03-24
      • 2012-09-19
      • 2018-01-16
      • 2013-04-01
      相关资源
      最近更新 更多