これが 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 ダウンロードが発生します。どうすれば修正できますか?