Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

119
Visualizações
Envíe una respuesta personalizada y captúrela en el cliente javascript usando tusdotnet

Estoy usando tusdotnet de tus.io en la aplicación ASP.NET Core, estoy tratando de enviar una respuesta personalizada ya que estoy colocando las entradas en la base de datos y necesito enviar la Id de la base de datos en la respuesta. En el lado de javascript, después de que el archivo se carga correctamente, la respuesta siempre es nula.

 onSuccess: function (response) { try { console.log(response); // this part is always null. even if the json response was received in the final network call. } catch (e) { console.log('Error onSuccess: ', e); } }

Necesito recuperar la respuesta.


https://github.com/tus/tus-js-client/blob/master/docs/api.md

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Resulta que tusdotnet de forma predeterminada envía un código de estado de respuesta como 204 No Content , lo que significa que mi respuesta fue ignorada desde la propia biblioteca.

Tuve que cambiar el HttpContext.Response de la configuración Tus para enviar el código de estado como 200 OK para devolver la respuesta desde la aplicación asp.net core . Por ejemplo, en mi evento OnFileCompleteAsync tuve que cambiar el código de estado predeterminado (204 No Content) a 200 OK :

 ctx.HttpContext.Response.StatusCode = StatusCodes.Status200OK; await ctx.HttpContext.Response.WriteAsJsonAsync(new FileUploadResponseModel() { FileName = "Modified File Path", Path = "Extra info regarding the path", FileId = "Database Id" }, ctx.CancellationToken);

Para capturar la respuesta en la devolución de llamada onSuccess :

 onSuccess: function (response) { try { console.log(response); // This method should have the response after below changes } catch (e) { console.log('Error onSuccess: ', e); } }

Tuve que modificar la biblioteca de javascript para emit correctamente la respuesta, ya que la implementación de 204 No Content se modificó a 200 OK . La función responsable de manejar este cambio fue _emitSuccess :

 function _emitSuccess() { if (this.options.removeFingerprintOnSuccess) { // Remove stored fingerprint and corresponding endpoint. This causes // new uploads of the same file to be treated as a different file. this._removeFromUrlStorage(); } if (typeof this.options.onSuccess === 'function') { this.options.onSuccess(); } }

Tuve que modificar el método anterior para:

 function _emitSuccess(res) { if (this.options.removeFingerprintOnSuccess) { // Remove stored fingerprint and corresponding endpoint. This causes // new uploads of the same file to be treated as a different file. this._removeFromUrlStorage(); } if (typeof this.options.onSuccess === 'function') { this.options.onSuccess(res); } }

Después de realizar este cambio, tuve que modificar todos los lugares donde se ejecutaba esta devolución de llamada para pasar la respuesta. Como en la devolución de llamada _handleUploadResponse :

 this._emitSuccess(res); // pass on the response received in the handler.

Del mismo modo, necesitaba modificar todos los lugares en los que se estaba consumiendo.


CDN: https://cdn.jsdelivr.net/npm/tus-js-client@latest/dist/tus.js

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda