我正在尝试向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与我的应用程式位于同一个网域。有想法吗?