Заполните угловую модель из ответа

0

Я получаю ответ, как

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.ByteArrayContent, Headers:
{
  x-filename: StatementofAccount.pdf
  Content-Type: application/octet-stream
  Content-Disposition: attachment; filename=StatementofAccount.pdf
}

теперь мне нужно использовать "x-filename: StatementofAccount.pdf", но я не могу это получить. Я использую этот ответ для своей модели, например $ scope.dataDetail = response.data; но когда я попытался получить console.log($ scope.dataDetail.StatusCode)

или console.log($ scope.dataDetail.Headers.x-filename)

но его показ не определен. PLZ получить мне идею, где я делаю неправильно или как это сделать.

Я пробовал следующим образом. PLZ, поймите меня, где я ошибаюсь.....

c#
....

byte[] bytes = memoryStream.ToArray();
                    memoryStream.Close();
httpResponseMessage.Content = new ByteArrayContent(bytes.ToArray());
                    httpResponseMessage.Content.Headers.Add("x-filename", fileName);
                    httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                    httpResponseMessage.Content.Headers.ContentDisposition.FileName = fileName;
                    httpResponseMessage.StatusCode = HttpStatusCode.OK;
                    return httpResponseMessage;

в угловом

 $http({
            method: 'post',
            url: basePath + '/profile/downloadpdf_fromedit',
           // data: JSON.stringify($scope.paginginfostmntaccnt),
            responsetype: 'arraybuffer',
            headers: {'content-type': 'application/pdf'},
            //  headers: { 'content-type': 'application/json' }
        })
            .then(function (response) {
              //  console.log(response.data);

                $scope.dataDetail = response.data;
                console.log($scope.dataDetail)

 1.               var file = new Blob([response.data], { type: 'application/pdf' });

 saveAs(file, 'StatementofAccount.pdf');

//url-file:///C:/Users/tushar/Downloads/StatementofAccount.pdf
//failed to load pdf

2.var file = new Blob([response], { type: 'application/pdf' });

  var fileurl = URL.createObjectURL(file);
                window.open(fileurl);

//url- blob:http://localhost:16311/02f8d85e-74c0-4ccd-b937-22f02cc3866c

//failed to load pdf document


3.
.success(function (data, status, headers, config) {
            // any required additional processing here 
            var results = [];
            results.data = data;
            results.headers = headers();
            results.status = status;
            results.config = config;

            console.log(results)

                $("#loading").hide();
                headers = headers();

                var filename = headers['x-filename'];

                var contentType = headers['content-type'];
                if (!filename) {
                    filename = headers["x-filename"] || 'statementAccount.pdf';
                }

                var linkElement = document.createElement('a');
                try {
                    var blob = new Blob([data], { type: contentType });
                    var url = window.URL.createObjectURL(blob);

                    linkElement.setAttribute('href', url);
                    linkElement.setAttribute("download", filename);

                    var clickEvent = new MouseEvent("click", {
                        "view": window,
                        "bubbles": true,
                        "cancelable": false
                    });
                    linkElement.dispatchEvent(clickEvent);
                    $("#loading").hide();

                    console.log("filename" + filename);

                } catch (ex) {
                    console.log("catch"+ex);
                    $("#loading").hide();
                }
            })
        //url-file:///C:/Users/tushar/Downloads/statementAccount.pdf
//failed to load pdf document
  • 0
    Можете ли вы включить код, который запрашивает этот ответ?
  • 0
    Я редактирую свой вопрос с помощью кода, который я использовал для загрузки PDF (динамически, передавая параметры предварительного поиска)
Показать ещё 2 комментария
Теги:
asp.net-mvc-4

1 ответ

0

Чтобы получить доступ к заголовкам ответа, вам нужно использовать response.headers вместо response.data часть данных содержит тело ответа.

  • 0
    Нет, это не работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню