gpt4 book ai didi

javascript - 为什么浏览器中会出现 cors 问题,而 Postman 中不会出现?

转载 作者:行者123 更新时间:2023-12-05 00:27:01 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





XMLHttpRequest cannot load XXX No 'Access-Control-Allow-Origin' header

(11 个回答)


6年前关闭。




编辑:这被标记为重复的问题不:

  • 解释虚假报告不存在的 cors 问题
  • 有它在 postman 中工作但在浏览器中工作的情况。

  • 我从 postman 那里生成了这个请求。
        POST /tvs/v1/sign HTTP/1.1
    Host: sp.auth.adobe.com
    Content-Type: application/x-www-form-urlencoded

    cdn=akamai&mediaToken=PHNpZ25hdHVyZUluZm8%2BSUJwRWFRbW8xSktzb1JSdkRuclpDaVJmSjNKdHk5SW9ZSmp2bklNQlpnRlIrSTUxWHVoWVR2U1RYOXB6R2FuTVl0R3RHdG9WT20zbnlPSHNPOWpLUTUrNEJtNXlTWTFnNmRzVjIrTmJoVDgwazhKV2dURlNSL3YwZWozbmVjNUxSQ084cVpZbDNpdjF0Z1BNY2ZkaEdtalorUlpaNGR2YmFCVTE5bUpRRFYwPTxzaWduYXR1cmVJbmZvPjxhdXRoVG9rZW4%2BPHNlc3Npb25HVUlEPjY4NzViYjljNTdmMTFkY2YzZTgxODk0MDdmNjQ5MmFlPC9zZXNzaW9uR1VJRD48cmVxdWVzdG9ySUQ%2BZ29sZjwvcmVxdWVzdG9ySUQ%2BPHJlc291cmNlSUQ%2BPCFbQ0RBVEFbPHJzcyB2ZXJzaW9uPSIyLjAiIHhtbG5zOm1lZGlhPSJodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9tcnNzLyI%2BPGNoYW5uZWw%2BPHRpdGxlPmdvbGY8L3RpdGxlPjxpdGVtPjx0aXRsZT5BVCZhbXA7VCBCeXJvbiBOZWxzb24gLSBSZCAxPC90aXRsZT48Z3VpZD4yMTc2OTwvZ3VpZD48L2l0ZW0%2BPC9jaGFubmVsPjwvcnNzPl1dPjwvcmVzb3VyY2VJRD48dHRsPjQyMDAwMDwvdHRsPjxpc3N1ZVRpbWU%2BMjAxNi0wNS0xOSAxNTo1NToyOCAtMDcwMDwvaXNzdWVUaW1lPjxtdnBkSWQ%2BQ2FibGV2aXNpb248L212cGRJZD48L2F1dGhUb2tlbj4%3D&resource=PHJzcyB2ZXJzaW9uPSIyLjAiIHhtbG5zOm1lZGlhPSJodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS9t+cnNzLyI%2BPGNoYW5uZWw%2BPHRpdGxlPmdvbGY8L3RpdGxlPjxpdGVtPjx0aXRsZT5BVCZhbXA7VCBC+eXJvbiBOZWxzb24gLSBSZCAxPC90aXRsZT48Z3VpZD4yMTc2OTwvZ3VpZD48L2l0ZW0%2BPC9jaGFu+bmVsPjwvcnNzPg%3D%3D&url=http%3A%2F%2Fgolfstreameast.golfchannel.com%2Fnbc09%2F8188bb65-0b4e-4c80-b609-a5f2b5d63f95%2Fgolf-live-extra0519113845.ism%2Fmanifest(format%3Dm3u8-aapl-v4)

    如果我从 Postman 发送此邮件,我将返回“token_expired”,这是我所期望的。

    但是,当我以 jQuery 形式生成此代码并通过浏览器触发它时,如下所示,出现 CORS 错误:
    XMLHttpRequest cannot load http://sp.auth.adobe.com/tvs/v1/sign. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://cms.devstream.nbcolympics.com:8080' is therefore not allowed access. The response had HTTP status code 403.

    我正在使用 http-server 提供以下代码与 --cors选项。我给 localhost 起了别名.所以我输入 alias:8080/index.html访问我的托管文件。

    问题是:为什么它在 Postman 中有效,但在我的浏览器中无效?

    代码:
    var obj = {};
    var endpoint = "http://sp.auth.adobe.com/tvs/v1/sign";
    var sourceUrl;
    function loadData(){
    obj.cdn = document.getElementById("cdn").value;
    obj.mediaToken = document.getElementById("mediaToken").value;
    obj.resource = document.getElementById("resource").value;
    obj.url = document.getElementById("url").value;

    var settings = {
    async: true,
    crossDomain: true,
    url: endpoint,
    method: "POST",
    headers: {
    "content-type": "application/x-www-form-urlencoded"
    },
    data: obj
    }

    $.ajax(settings).done(function (response) {
    console.log(response);
    });
    }

    最佳答案

    这是一个误报(否定?)它实际上不是一个 cors 问题。

    对于像这样的某些服务器,如果您发送的数据会产生 200 ,你不会得到一个 cors 错误。你会得到你所期望的。

    如果您发送的数据会产生 403 ,浏览器可能会将其解释为错误的 CORS 错误,而实际上并非如此。

    因此,如果您有理由确定您所做的一切都是正确的,请确保您发送的请求是 应该 返回 200。

    关于javascript - 为什么浏览器中会出现 cors 问题,而 Postman 中不会出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335529/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com