【问题标题】:connecting to cors enabled api with jquery使用 jquery 连接到启用 cors 的 api
【发布时间】:2014-08-05 19:01:45
【问题描述】:

我正在尝试(从本地主机)连接到 wallabee api(已启用 cors)。但我一直在记录失败并且没有错误。有人知道我做错了什么吗?

$(document).ready(function () {
$.ajax({
    type: 'GET',
    dataType: "json",

    url: 'http://api.wallab.ee/achievements',
    headers: {
        "X-WallaBee-API-Key":"53c526cc-3770-4255-a082-1ee80ad14847",
        "Access-Control-Allow-Origin:": "*"
},
    xhrFields: {
        withCredentials: true
    },

    success: function(data) {
        console.log('success');
    },
    error: function(data) {
        console.log("failure");
    }
});

【问题讨论】:

    标签: jquery cors


    【解决方案1】:

    这里有两件事:

    1. 您不能在 ajax 请求中设置 Access-Control-Allow-Origin 标头。服务器在响应中返回该标头以允许跨域访问。
    2. 在您的情况下,wallabee API 似乎没有启用 CORS。它不会在飞行前 OPTIONS 请求中返回任何 CORS 标头。也许你需要问一下?

    【讨论】:

    • 我删除了“Access-Control-Allow-Origin”(我的错误)。在联系了 wallabee 管理员后,他启用了 Cors。但它仍然无法正常工作。
    • 我通过使用 php 代理脚本解决了这个问题,类似于 [link] (benalman.com/code/projects/php-simple-proxy/docs/files/…)
    【解决方案2】:

    我在使用 wallabee api 时遇到了同样的问题,我已经搜索了几个小时。 原来,问题不在于 API,而在于 Chrome。

    为我解决的问题是在没有网络安全的情况下启动 chrome。由于某种原因,chrome(和 firefox)不能很好地与 cors + localhost 配合使用。不过不要问我详细的解释。

    • Windows:在 chrome 快捷方式的目标末尾添加 --disable-web-security。
    • OSX:在终端中打开 -a Google\ Chrome --args --disable-web-security。

    【讨论】:

      【解决方案3】:

      事实证明,没有网络安全的启动也无法正常工作 不在在线网络服务器上

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-04
        • 1970-01-01
        • 2016-01-20
        • 1970-01-01
        • 2015-09-27
        • 2022-10-31
        • 2014-12-04
        • 2016-01-09
        相关资源
        最近更新 更多