Como fazer uma chamada na api search sem CORS em dominio externo

Estou usando a seguinte url:

"https://b2bnaweb.vtexcommercestable.com.br/api/catalog_system/pub/products/search?fq=sellerIds:bunzlchs&_from=0&_to=49

No entanto sigo com erro de cors no browser quando testo no localhost no meu pc.

Já li varios posts sobre o tema, mas nao vejo solução...

Fetch que estou fazendo:

fetch(

"https://b2bnaweb.vtexcommercestable.com.br/api/catalog_system/pub/products/search?fq=sellerIds:bunzlchs&_from=0&_to=49",

{

method: "GET",

mode: "no-cors",

headers: {

"Accept": "application/json",

"Content-Type": "application/json"

}

}

)

.then(function(response){

return response.json();

})

.then(response => {

console.log(response);

});

qual a url oficial do site?

"https://urldosite/api/catalog_system/pub/products/search?fq=sellerIds:bunzlchs&_from=0&_to=49"

apenas uma ideia, não tenho certeza se vai funcionar.

Boa tarde, @Alexandre Sattamini​ . Testei algumas opções e você está certo: Não funciona com outros domínios.

A solução é criar um gateway em PHP (Go, Python, etc).

Marca a tua própria resposta como solução, para que futuros navegantes possam enxergar melhor.

Abraço,

Olá @Jorge Craviotto​

Criar uma api resolve sim. O preço é ter um servidor e receber milhares de requisições por dia, ou seja, custo extra. No max você consegue baratear se for conteudo estatico e servir via cdn

Mesmo assim, para quem contrata a vtex, é um custo extra a se considerar

Olá Fabio!

Creio que o cors só vai ser liberado no browser caso seja da url netsuprimentos.com.br.

O que resolvi aqui foi fazer uma chamada num arquivo php, onde o cors é liberado, e chamar o JS lá.

Abs

Boa tarde, Alexandre.

Tenta o uso do .ajax() ao invés do fetch(). Vale lembrar que o server side deve permitir cross-domain.

$.ajax({

async: true,

crossDomain: true,

url: url,

type: "GET",

dataType: "json",

data: dataToSend,

cache: false,

success: function(data) {

// bla, bla ...

},

error: function(responseData, textStatus, errorThrown) {

console.log(textStatus, responseData);

}

Olá @Jorge Craviotto​

Vtex informou que só libera CORS para o dominio da conta, não é possivel usar em subdominios ou outros dominios

Abs