Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

279
Views
Content-Disposition es siempre nulo

Tengo una función en mi web api 2.0 para descargar un archivo, pero no la había probado en mucho tiempo y solo ayer descubrí que ya no funcionaba. He solucionado parcialmente el problema con createObjectURL pero una cosa que he notado es que mientras la Content-Disposition está configurada en mi API web:

 public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken) { var response = new HttpResponseMessage(); var filename = this.Document.GetFilename(); var mimeType = MimeMapping.GetMimeMapping(filename); response.Content = new StreamContent(new MemoryStream(this.Document.ToData())); response.Content.Headers.ContentLength = this.Document.Data.Length; response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = filename }; return Task.FromResult(response); }

Sin embargo, cuando lo verifico en JavaScript , siempre es nulo desde el encabezado de respuesta:

 success: function (blob, status, xhr) { var filename = ""; var disposition = xhr.getResponseHeader('Content-Disposition'); ... }

¿Alguna idea de por qué?

Gracias.

ACTUALIZACIÓN-1:

La disposición del contenido parece devolverse cuando compruebo la respuesta en la sección Network del navegador, pero cuando llamo a xhr.getAllResponseHeaders() o xhr.getResponseHeader('Content-Disposition'); , ninguna de las llamadas de función lo devuelve, como puede ver en la siguiente instantánea:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¡Acabo de descubrir el problema y fue por mi cuenta desafortunadamente!

Tuve lo siguiente en mi solicitud de ajax:

 xhrFields: { responseType: 'blob' }

pero luego introduje el soporte de credenciales e introduje esto

 xhrFields: { withCredentials: true }

pero no me di cuenta de esto hasta esta mañana cuando me di cuenta de que estúpidamente declaré claramente lo anterior, es decir, 2 declaraciones, por lo tanto, sobrescribí el tipo de responseType: 'blob' cuando debería haberlo declarado como:

 xhrFields: { responseType: 'blob', withCredentials: true }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!