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);
});
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