none
Consumir uma webapi via GET RRS feed

  • Pergunta

  • Boa tarde,

    Preciso recuperar informações de um usuários (retorno JSON) via get.
    Porém preciso passar no Header a authorization com o token (bearer).
    Eu tenho aqui comigo isso: 
    A url: http://www.meusite.com/api/usuario/completo/contexto/Variavel
    E esse meu header: 
    Authorization: Bearer { "eyJ0eXAiOiJKV1QiLCJhbGciOiSI6"}
    Content-Type: application/json

    Gostaria de saber como montar meu código com essas informçãoes acima, e no retorno dele virá um objeto Usuario em JSON.

    Alguem pode me ajudar?

    Abs,
    Arthur
    quinta-feira, 23 de junho de 2016 18:47

Respostas

  • Com JQUERY, utilize o beforeSend:

    $.ajax({
    
      type: "GET",
      url:"http://www.meusite.com/api/usuario/completo/contexto/Variavel",
      dataType: 'json',
      data: {
          },
      success: function(data, status) {
        return console.log("resultado", data);
      },
      beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); } 
    });
    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 23 de junho de 2016 19:07
    Moderador

Todas as Respostas

  • Com JQUERY, utilize o beforeSend:

    $.ajax({
    
      type: "GET",
      url:"http://www.meusite.com/api/usuario/completo/contexto/Variavel",
      dataType: 'json',
      data: {
          },
      success: function(data, status) {
        return console.log("resultado", data);
      },
      beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); } 
    });
    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 23 de junho de 2016 19:07
    Moderador
  • Com JQUERY, utilize o beforeSend:

    $.ajax({
    
      type: "GET",
      url:"http://www.meusite.com/api/usuario/completo/contexto/Variavel",
      dataType: 'json',
      data: {
          },
      success: function(data, status) {
        return console.log("resultado", data);
      },
      beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); } 
    });
    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    William obrigado pela resposta,
    Fiz exatamente como informou acima mas acusou um erro de segurança quando tento acessar uma URL que não está no mesmo servidor: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    Pode me ajudar como resolver isso?

    Att,
    sexta-feira, 24 de junho de 2016 14:54
  • Alguem pode me ajudar?
    sexta-feira, 24 de junho de 2016 17:46
  • O site esta interpretando a sua demanda como Cross-Origin XMLHttpRequest

    Aqui tem um tutorial de como resover isso:

    http://www.html5rocks.com/en/tutorials/cors/

    Outra forma é usando JSONP, mas fique atento pois isso abre algumas portas à alguns tipos de ataques:

    https://en.wikipedia.org/wiki/JSONP

    Talvez este post tambem ajude:

    http://stackoverflow.com/questions/27504256/mvc-web-api-no-access-control-allow-origin-header-is-present-on-the-requested

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    sábado, 25 de junho de 2016 17:05
    Moderador
  • Seguindo seu exemplo no primeiro post, seria apenas colocar o jsonp dessa forma?

    $.ajax({
    
      type: "GET",
      url:"http://www.meusite.com/api/usuario/completo/contexto/Variavel",
      dataType: 'jsonp',
      data: {
          },
      success: function(data, status) {
        return console.log("resultado", data);
      },
      beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); } 
    });

    segunda-feira, 27 de junho de 2016 14:58
  • Sim, mas jsonp nao é um formato nativo... voce tera que adicionar o suporte ao jsonp à sua aplicaçao

    Aqui esta um tutorial de como fazer isso:

    http://www.codeproject.com/Tips/631685/JSONP-in-ASP-NET-Web-API-Quick-Get-Started

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    segunda-feira, 27 de junho de 2016 15:11
    Moderador
  • William,

    Vi o tutorial que me passou, e não tenho muita experiencia com WEB API, o meu site que preciso chamar essa URL está em asp.net web form e o formato desse tutorial é em MVC, acho que isso não dá certo. pq ele pede pra criar alguns arquivos que no meu projeto não tem como criar. 
    Eu precisava de algo em webform para dar continuidade, sabe se existe?

    Desde já agradeço a sua atenção comigo.

    Att,

    terça-feira, 28 de junho de 2016 14:13
  • Bom WEBAPI é uma tecnologia derivada do ASP.NET MVC. Conforme o seu titulo eu pensei que voce se referia a essa tecnologia.

    No seu caso nao seriam Web Methods?

    De qualquer forma, esse problema nao é trivial de se resolver. Voce entendeu que o problema existe quando os dominios sao diferentes e voce esta tentando usar a mesma autenticaçao para ambos. Caso voce permita isso, entao voce estara abrindo uma porta para certos tipos de ataques.

    Aqui esta a documentaçao completa sobre o CORS:

    https://docs.asp.net/en/latest/security/cors.html

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 28 de junho de 2016 15:30
    Moderador