Saltar al contenido

Falta el token de solicitud para la solicitud

Si te encuentras con algo que no entiendes puedes dejarnos un comentario y te ayudaremos rápidamente.

Solución:

Los problemas vienen de [email protected]error interno de .

Una solución rápida es revertir este compromiso: https://github.com/facebook/react-native/commit/31980094107ed37f8de70972dbcc319cc9a26339#diff-9a034658197479288c4d346a0eb4d98c

Después de revertir manualmente este compromiso en node_modulesvuelva a compilar la aplicación y la carga de imágenes funcionará sin problemas.

Reemplazar la función loadImageForURL en /Libraries/Image/RCTLocalAssetImageLoader.mm con lo siguiente:

 - (RCTImageLoaderCancellationBlock)loadImageForURL:(NSURL *)imageURL
                                           size:(CGSize)size
                                          scale:(CGFloat)scale
                                     resizeMode:(RCTResizeMode)resizeMode
                                progressHandler:(RCTImageLoaderProgressBlock)progressHandler
                             partialLoadHandler:(RCTImageLoaderPartialLoadBlock)partialLoadHandler
                              completionHandler:(RCTImageLoaderCompletionBlock)completionHandler
 
   __block auto cancelled = std::make_shared>(false);
   RCTExecuteOnMainQueue(^
     if (cancelled->load()) 
       return;
     

     UIImage *image = RCTImageFromLocalAssetURL(imageURL);
     if (image) 
       if (progressHandler) 
         progressHandler(1, 1);
       
       completionHandler(nil, image);
      else 
       NSString *message = [NSString stringWithFormat:@"Could not find image %@", imageURL];
       RCTLogWarn(@"%@", message);
       completionHandler(RCTErrorWithMessage(message), nil);
     
   );

   return ^
     cancelled->store(true);
   ;
 

Este problema está solucionado en 0.63.3 ✅

Tengo el mismo problema que es perfectamente reproducible en uno de los iPhone 7 en mi proyecto nativo de reacción. Es extraño, pero otro iPhone 7 funciona perfectamente, así como todos los dispositivos Android.

Mi código:

formdata.append("file", uri: photo.uri, name: name_img, type: 'image/jpeg' );

axios(
   url: `$API$'/upload'`,
   method: 'post',
   headers: 
      'Authorization': 'Basic ' + auth_token,
      'Content-Type':'application/x-www-form-urlencoded'
   ,
   data: formdata
).then(response => this.saveRoute())
  .catch(err =>          
     this.props.errorMessage(message: err)
  
})

Pocas cosas que investigo:

  • No pude detectarlo en el modo de depuración (¿las costuras están mal en las llamadas asíncronas?)
  • No pude atraparlo con try-catch declaración pero costuras sucedió en llamada Axios.

Entonces, traté de jugar con Timeout y pude hacerlo totalmente irreproducible con Tiempo de espera de 300 ms antes de la llamada de Axios.

formdata.append("file", uri: photo.uri, name: name_img, type: 'image/jpeg' );
    setTimeout(() =>
      axios(
        url: `$API$'/upload'`,
        method: 'post',
        headers: 
          'Authorization': 'Basic ' + auth_token,
          'Content-Type':'application/x-www-form-urlencoded'
        ,
    data: formdata
  ).then(response => this.saveRoute())
    .catch(err => 
        this.props.errorMessage(message: err)
      
    })
  , 300);

Sé que es una solución alternativa, pero puede ayudar a otros a comprender el problema para una investigación más profunda.

Si te ha sido útil este artículo, sería de mucha ayuda si lo compartes con otros programadores de esta forma contrubuyes a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *