0

これが ajax の目的に反するという理由で私を嫌う前に、ここに私の理由を示します。

フォーム認証を使用して asp.NET MVC Web サービスにデータ アクセスする HTML5 PhoneGap アプリケーションがあります。PDF ファイルを返すアクションにリンクし、そのファイルをモバイル Safari で表示したいと考えています。問題は、私が行うとtarget="_blank"、リクエストはアプリに保存されているフォーム認証認証Cookieを持たないサファリからのものであるため、リクエストは認証されません。を使用しない場合target="_blank"、リクエストは適切に認証され、webview (PhoneGap) 全体に読み込まれ、Safari が提供する [iBooks で開く] または [.. で開く] ボタンにアクセスできません。

新しいタブで開いて、PDF を ajax でロードし、結果をサファリに表示できるようにしたいと考えています。これは可能ですか?

編集:私は今これを試しています:

$.ajax({
    url: downloadURL,
    type: 'GET',
    xhrFields: {
        withCredentials: true
    },
    success: function(data, textStatus, jqXHR) {
        //console.log(data);
        window.location = 'data:application/pdf;'+data;
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log('Error retrieving data: ' + errorThrown + '\n' + jqXHR);
    },
    complete: function(jqXHR, textStatus) {
    }
});

しかし、これにより、無効な pdf ダウンロードが発生します。どうすれば修正できますか?

4

0 に答える 0