访问公共Web API

时间:2015-08-26 18:03:49

标签: javascript api cors asp.net-web-api

希望有人可以指出我正确的方向,我已经搜索了几天但仍然没有。我尝试调用不同的API只是为了播放返回数据,但每次调用API时我都会遇到同样的错误:

  

否'访问控制 - 允许 - 来源'标头出现在请求的资源上。来源'您的网站'因此不允许访问。响应具有HTTP状态代码404

我知道我的电话正在通过,因为对于一个特定的API,它会跟踪我的使用情况并说我已经进行了大约5次成功调用,所以这意味着数据正在返回,但我的浏览器正在阻止它。这只发生在Public API上。我通过Azure创建了自己的API,设置了CORS,称为API,它运行得很好。但是,由于我无法访问公共服务器来设置和启用CORS,因此我无法知道他们如何设置CORS。

这是我调用API的代码:

MyAngularApp.service('APIService', function ($http) {
    return {
        getWork: function() {
            return $.ajax({
                url: "http://api.nfldata.apiphany.com/nfl/v2/JSON/Teams/2014",
                beforeSend: function (xhrObj) {
                    // Request headers
                    xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", "*******");
                },
                type: "GET",               
            })
        .done(function (data) {
            alert("success");
        })
        .fail(function () {
            alert("error");
        });
    }
  }
});

任何帮助表示感谢

1 个答案:

答案 0 :(得分:0)

使用jsonp是一种方式,但我认为您实施CORS策略以授权此域的请求更好,请阅读官方文档:Enabling Cross-Origin Requests in ASP.NET Web API 2