使用 Ajax/jsonp 从 Web Api 接收数据

Posted

技术标签:

【中文标题】使用 Ajax/jsonp 从 Web Api 接收数据【英文标题】:Using Ajax/jsonp to receive data from Web Api 【发布时间】:2012-12-17 08:00:43 【问题描述】:

我使用 Web Api 构建了一个简单的 Web 服务,我想使用 jQuery 从一个简单的 mVC 视图中使用它。我在 localhost 上开发并使用 Azure 的服务,这就是我使用 jsonp 的原因。

当我运行我的 jQuery 时,我在 Fiddler 中查看,请求成功并且 json 被发回,但是 .Ajax 函数返回这些错误:

未调用 NaN、解析器错误和回调

<script>
    $(function () 

        var callback = function(data) 
            alert(data);
        ;
            $.ajax(
                url: 'http://itjobsdirect.azurewebsites.net/api/values/getbytitle?title=developer',
                type: 'GET',
                dataType: 'jsonp',
                jsonpCallback: 'callback',
                success: function (data) 
                    $('#main').text(data);

                ,
                error: function(jqXHR, textStatus, error) 
                    alert(jqXHR.status + jqXHR.message);
                    alert(textStatus);
                    alert(error);
                
            );



    );
</script>

我发现了这个问题:JsonP with Web Api 它仍然相关吗?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

是的,指向您那里的那个问题的链接仍然相关。

ASP.NET Webapi 没有提供理解“jsonp”数据类型的默认格式化程序,因此这里的解决方案是添加自定义 JsonpMediaTypeFormatter(如您所链接问题的答案所示)。

【讨论】:

最后使用了显示模块和 Handlebars 模板

以上是关于使用 Ajax/jsonp 从 Web Api 接收数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery ajax jsonp 调用 web 服务:错误

jquery $.ajax jsonp

Ajax跨域问题解决(Ajax JSONP)

Springboot跨域 ajax jsonp请求

JQuery+ajax+jsonp 跨域访问

JQuery+ajax+jsonp 跨域访问