通过远程Web API提供网页数据

时间:2013-10-23 16:30:22

标签: javascript jquery ajax asp.net-mvc asp.net-web-api

我正在尝试操作两台服务器。

  1. MVC Web API服务。
  2. MVC Web应用程序。
  3. 这个想法是Web应用程序呈现一个填充了javascript请求的页面,这些请求填充了来自远程API服务的实际数据。 Web应用程序本身永远不会触及数据库或API服务(除了最初设置授权令牌之外)。

    实现这一目标的最佳方法是什么?

    到目前为止,我一直在使用JQuery AJAX次请求,尝试使用JSONP。但是我总是得到“x未被称为”例外。

        $.ajax({
            url: '@(ViewBag.API)api/customer',
            type: 'get',
            dataType: 'jsonp',
            jsonp: false,
            jsonpCallback: function (data) {
                debugger;
                // code to load to ko
            },
            error: function (xhr, status, error) {
                alert(error.message);
            }
        });
    

    在发送请求之前调用jsonpCallback函数,所以我假设它实际上试图调用函数来生成字符串?如果我改革这个要求:

        window.success = function (data) {
            debugger;
            // code to load to ko
        };
    

    ... jsonpCallback是“成功”,我仍然得到同样的错误(但是从不调用成功方法。

    有什么想法吗?感谢。

    编辑:我已经从这开始了正确的课程:

    http://www.codeproject.com/Tips/631685/JSONP-in-ASP-NET-Web-API-Quick-Get-Started

    添加了格式化程序,并成功替换了jsonCallback,就像普通的ajax一样。但是,这似乎只适用于get。我不能deleteupdate。 :(

1 个答案:

答案 0 :(得分:0)

你能用$ .getJSON方法让它工作吗?

$.getJSON( "ajax/test.json", function( data ) {
  //handle response
});

您是否在IE中启动了开发人员工具并观察了网络流量,以确切了解发送和返回的内容?