es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener la URL de redirección de ubicación desde el estado del código de respuesta 401 de jQuery Ajax.

Actualmente tengo el siguiente código y necesito obtener el parámetro location al que debe redirigir. ¿Cómo puedo obtenerlo con la configuración de statusCode?

Llamada Ajax

$.ajax({
  url: url,
  data: (def.data ? (def.convertToJson ? JSON.stringify(def.data) : def.data) : ''),
  type: def.type,
  dataType: def.dataType,
  cache: def.cache,
  contentType: def.contentType,
  statusCode: {
    401: function (response) {
      debugger;
      window.location = OBTENER URL DE UBICACIÓN DESDE LA RESPUESTA;
    }
  }
});

Parámetro de respuesta

response.getAllResponseHeaders();

‘access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept\r\naccess-control-allow-origin: *\r\ncache-control: private\r\ncontent-length: 58\r\ncontent-type: text/html\r\ndate: Mon, 06 Dec 2021 16:51:23 GMT\r\nlocation: https://localhost:44360/store?storeorganizationid=24917#/login?returnurl=https%3a%2f%2flocalhost%3a44360%2fstore%2faccount%3fstoreorganizationid%3d24917%26_%3d1638809474810\r\nserver: Microsoft-IIS/10.0\r\nx-aspnet-version: 4.0.30319\r\nx-aspnetmvc-version: 5.2\r\nx-exposure-server: EastUS2\r\nx-exposure-sport: Basketball\r\nx-powered-by: ASP.NET\r\nx-sourcefiles: =?UTF-8?B?RjpcTXkgV2Vic1xCYXNrZXRiYWxsVG91cm5hbWVudHNcTmV3UmVnaXN0cmF0aW9uXFdlYnNpdGVzXFRvdXJuYW1lbnRzXHN0b3JlXGFjY291bnQ=?=\r\nx-ua-compatible: IE=Edge,chrome=1\r\n’

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el parámetro location de la respuesta y redirigir a ella utilizando la configuración del código de estado, puedes usar el método getResponseHeader() en el objeto de respuesta y pasar el encabezado location como parámetro. El código actualizado se vería así:

    $.ajax({
        url: url,
        data: (def.data ? (def.convertToJson ? JSON.stringify(def.data) : def.data) : ''),
        type: def.type,
        dataType: def.dataType,
        cache: def.cache,
        contentType: def.contentType,
        statusCode: {
            401: function (response) {
                window.location = response.getResponseHeader('location');
            }
        }
    });
    

    Esto extraerá el valor del encabezado location de la respuesta y lo utilizará para redirigir al usuario a la URL especificada.

Comments are closed.