多次发布,响应cors错误或未经授权的Hattp基本

时间:2018-07-04 16:22:02

标签: javascript jquery ajax cors xmlhttprequest

我正在尝试向API发送多个帖子,我想创建一个租户使用该API,以实现此目的。 1.-我必须做一个帖子来创建租户,这可以创建租户。 2.-然后,在响应中,我必须从响应中获取ID并为该租户创建配额,最重要的是,如果我再次发送凭据,则会出现cors错误。

跨域请求被阻止:“同源起源”策略禁止读取https://local/api/tenants/1000000000180/quotas处的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。 跨域请求被阻止:同源策略禁止读取https://local/api/tenants/1000000000180/quotas处的远程资源。 (原因:CORS请求未成功。)

这是返回错误的代码enter code here

function crearTenant() {

   var llama = $.ajax({
        type: "POST",
        url: "https://localhost/api/tenants",
        dataType: 'json',
        async:true,
        crossDomain:true,
        headers: {
            "Authorization": "Basic " + btoa(username + ":" + password)
        },
        data: '{ "action" : "create", "resource" : {"name" : "diecsdgdddsdssdddddsod",  "description": "Test Tenant Description","parent": {"href": "https://localhost/api/tenants/1000000000001"}}}',

        success: function(as) {
           // alert(as["results"][0]["id"]);
            idtenant = as["results"][0]["id"]; // saca id del tenant creado
            if (idtenant == 0) {
                alert("no hay id");
            } else {
                quotaTenant(idtenant);
            }
        }
    });
 }

//funcion para agregar quotes al tenant

function quotaTenant(id) {

    $.ajax({
        type: "post",
        url: "https://localhost/api/tenants/" + id + "/quotas",
        dataType: 'json',
        async: true,
        crossDomain:true,
        headers: {
            "Authorization": "Basic " + btoa(username + ":" + password)
        },

        data: '{"name" : "cpu_allocated",  "value": 16}'
     });

}

然后我将函数quotaTenant(id)更改为

function quotaTenant(id) {

    $.ajax({
        type: "post",
        url: "localhost/api/tenants/" + id + "/quotas",
        dataType: 'json',
        async: true,
        crossDomain:true,
        xhrFields: {
            withCredentials: true
        },

        data: '{"name" : "cpu_allocated",  "value": 16}'
    });

}

但是当第二个帖子正在处理时,出现询问身份凭证的提示,然后我输入身份凭证,一切正常。 稀薄的是,我不应该插入凭据。我怎样才能做到这一点? 另外,如果我再次执行该过程,一旦插入凭据,就不会出现提示,我认为该会话在浏览器中仍然有效。 我张贴到一个API,我不能修改该代码。 这个API与我的应用程式位于同一个网域。有想法吗?

0 个答案:

没有答案