Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么cors问题会发生在浏览器中,而不是在邮递员中?_Javascript_Jquery_Postman - Fatal编程技术网

Javascript 为什么cors问题会发生在浏览器中,而不是在邮递员中?

Javascript 为什么cors问题会发生在浏览器中,而不是在邮递员中?,javascript,jquery,postman,Javascript,Jquery,Postman,编辑:标记为重复的问题不: 解释不存在的cors问题的虚假报告 让它在邮递员中工作,但不在浏览器中工作。 我从邮递员那里得到了这个请求 POST /tvs/v1/sign HTTP/1.1 Host: sp.auth.adobe.com Content-Type: application/x-www-form-urlencoded cdn=akamai&mediaToken=PHNpZ25hdHVyZUluZm8%2BSUJwRWFRbW8xSktzb1JSdkRuclpDaV

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

解释不存在的cors问题的虚假报告 让它在邮递员中工作,但不在浏览器中工作。 我从邮递员那里得到了这个请求

    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)
如果我从邮递员那里寄这封信,我会取回过期的令牌,这就是我所期望的

但是,当我在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.
我使用-cors选项提供下面的代码。我给localhost加了别名。因此,我键入alias:8080/index.html以访问托管文件

问题是:为什么它可以在Postman中工作,而不能在我的浏览器中工作

代码:
这是假阳性还是假阴性?这实际上不是cors的问题

对于像这样的特定服务器,如果您发送的数据产生200,您将不会返回cors错误。你会得到你想要的

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


因此,如果你合理地确定你做的每件事都是正确的,那么确保你发送的请求应该返回一个200

我遇到的Postman和浏览器之间的一个区别是,浏览器使用飞行前请求,使用选项请求类型。您需要通过添加访问控制允许方法来允许此类请求:服务器端的POST、GET、OPTIONS头。
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);
    });
}