在你恨我之前因为这违背了ajax的目的,这是我的理由:
我有一个HTML5 PhoneGap应用程序,它使用表单身份验证对asp.NET MVC Web服务进行数据访问。我想链接到一个返回PDF文件的动作,然后在移动Safari中显示该文件。问题是,如果我执行target="_blank"
,请求来自safari,它没有存储在应用程序中的表单身份验证身份验证cookie,因此请求未经过身份验证。如果我不使用target="_blank"
,请求将被正确验证,并加载到整个webview(PhoneGap)中,我无法访问提供的“在iBooks中打开”或“打开...”按钮通过Safari。
我希望能够通过在新选项卡中打开来加载PDF,然后在safari中显示结果。这可能吗?
编辑:我现在正在尝试:
$.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下载无效。知道如何解决它吗?