【问题标题】:Feeding webpage data via remote Web API通过远程 Web API 提供网页数据
【发布时间】:2013-10-23 16:30:21
【问题描述】:

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

  1. MVC Web API 服务。
  2. MVC Web 应用程序。

这个想法是 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。 :(

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 当我尝试使用getJSON 时出现Access-Control-Allow-Origin 异常。因此尝试使用 jsonp。我还想对 Web API 使用 CRUD 操作(因此需要获取、发布、放置、删除,除了$.ajax,我在任何地方都看不到选项。
    猜你喜欢
    • 2018-06-30
    • 2013-09-23
    • 2012-01-12
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多