Consumo Api pública - Cross Domain Origin

Boa tarde estou implementando um script js para consumo de uma API pública do Fluig, realizei todos os passos necessários para implementar o Auth e quando testo pelo Postman não tenho problema, porém quando faço uma requisição ajax pelo meu script no navegador tenho o seguinte erro:

Access to XMLHttpRequest at 'http://xxx.xxx.xxx.xxx:9021/api/public/2.0/workflows/requests/sla?initialStartDate=2016-01-01&oauth_consumer_key=33fbbe0c-5266-4b4c-b3b3-083d084a5219&oauth_nonce=mog9Lb&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1558982442&oauth_version=1.0&oauth_token=460d7bc6-bf31-43be-8982-314f2f205d6d&initialStartDate=2016-01-01&oauth_signature=bvi0ANf65CQHWM61AUCG52qGwdc%3D' from origin 'http://xxx.xxx.xxx.xxx' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Sei que isso acontece devido a um padrão implementado pelos navegadores.

O que gostaria de saber é se há uma alternativa no Fluig para resolver isso, como em outras linguagens de programação que conheço .. Adicionando no header da resposta o CORS.

Agradeço.

*Script*

$.getScript('../teste/crypto-js', function()
{
    var oauth = OAuth({
        consumer: {
            key: 'xxxx', /* Nome alterado de "public" para "key" */
            secret: 'xxxx'
        },
        signature_method: 'HMAC-SHA1',
        hash_function: function (base_string, key) { 
            return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64)
        },
        nonce_length: 6
    })

    var request_data = {
        url: 'http://187.87.38.51:9021/api/public/2.0/workflows/requests/sla?initialStartDate=2016-01-01',
        method: 'GET',
        data: {}
    }

    var token = {
        key: 'xxxx', /* Nome alterado de "public" para "key" */
        secret: 'xxxx'
    }

    $.ajax({
        contentType: "application/json",
        crossDomain: true,
        url: request_data.url,
        type: request_data.method,
        data: oauth.authorize(request_data, token)
    })
    .done(function(data) {
        console.log(data)
    })
});
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags cors api ou faça a sua própria pergunta.