Usuário com melhor resposta
Consumir uma webapi via GET

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
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
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas sexta-feira, 24 de junho de 2016 12:34
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
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas sexta-feira, 24 de junho de 2016 12:34
-
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
----------------------------------------------------------
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, -
-
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:
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator sábado, 25 de junho de 2016 17:08
-
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); } });
-
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
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
-
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, -
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
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------