я следующий код в моем C# Web APIПользовательский заголовок не виден на стороне клиента
HttpResponseMessage result = null;
var stream = new MemoryStream(File.ReadAllBytes(tempFileName));
result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.add("fileName", Path.GetFileName(tempFileName));
File.Delete(tempFileName);
return result;
и после на стороне клиента
var deferred = this.$q.defer();
this.$http({
method: 'GET',
url: someURL,
responseType: 'arraybuffer'
}).then(function (response: any) {
var blob = new Blob([response.data], { type: "application/octet-stream" });
var link = document.createElement('a');
var url = URL.createObjectURL(blob);
link.setAttribute('href', url);
link.setAttribute("download", "demo.doc");
link.click();
deferred.resolve();
});
return deferred.promise;
Но когда я добавить часы для response.headers() на стороне клиента Javascript это только показывает мне следующее
{content-type: "application/octet-stream", cache-control: "private"}
Может кто-нибудь помочь мне найти, где заголовок имя файла?
Благодарим за ответ, но ни одно из решений не работает, так как вы можете видеть только два заголовка на стороне клиента. Я не уверен, где делать изменения на стороне сервера или на стороне клиента. –
Я бы попытался перехватить сетевой трафик (для этого вы можете использовать инструменты разработчика Chrome или Fiddler и т. Д.), А затем проверить заголовки http respone. Если вы не видите свой собственный заголовок 'filename' там, то, скорее всего, он не передается с сервера. –