Tengo un problema con mi AJAX. Usando Insomnia, pude ingresar con una respuesta exitosa de 200 usando el token API.
Sin embargo, cuando lo implemento en el HTML, recibo una respuesta 401 de acceso denegado .
$.ajax({ url: "https://ecoexchange.dscloud.me:8080/api/get", method: "GET", apikey: sessionStorage.getItem("apikey"), dataType: 'json', success: function(result) { $('#infoTable tr').empty(); var header = $('#infoTable thead'); var body = $('#infoTable tbody'); var hTr; $('#infoTable thead').append(hTr = $('<tr>')); // Headers for (var h = 0; h < result.headers.length; h++) { hTr.append($('<th>', { text: result.headers[h] })) } // Body for (var d in result.data) { var data = result.data[d]; $('#infoTable tbody').append($('<tr>') .append($('<td>', { text: data.RecyclableID })) .append($('<td>', { text: data.Name })) .append($('<td>', { text: data.RecyclableType })) ) } } })No estoy seguro de cómo ingresar el token, el nombre de usuario o la contraseña.
¿Cómo puedo mejorar el código para que no me dé el error?
¿Qué es este parámetro apikey que estás usando? Eso no está en la documentación .
apikey: sessionStorage.getItem("apikey"),¿Querías pasarlo como un encabezado en su lugar? Por ejemplo:
headers: {"apikey": sessionStorage.getItem("apikey")},La documentación del servicio que está utilizando debe especificar cómo incluir la clave API. Presumiblemente usted tiene esa información, porque:
Usando Insomnia, pude entrar con una respuesta exitosa
Por lo tanto, deberá incluir el valor en su solicitud AJAX donde corresponda. Lo más probable es que sea un valor de encabezado o un valor de cadena de consulta. Pero la función jQuery .ajax() no sabrá cómo pasar el valor, debe especificarlo.
Creo que su problema es pasar consultas que se pueden resolver aquí .
Como se ha dicho en la respuesta de David , debe saber dónde se requiere su apikey en el lado del servidor, en el encabezado o consultas (parámetros).
Si se requiere su apikey en consultas basadas en los documentos, puede usar:
$.get('/api/get' , {'apikey' : 'YOUR-KEY'}).done((res) => { console.log(res) })O si se requiere su apikey en los encabezados:
$.ajax({ url: '/api/get', type: 'GET', headers: {'apikey' : 'YOUR-KEY'}, success : (res) =>{ console.log(res); } })Los documentos de jQuery.ajax() se pueden encontrar aquí
Y jQuery.get() documentos aquí