是否可以ajax加载URL,然后在新的选项卡/窗口中打开结果?

时间:2012-09-05 14:11:33

标签: ios ajax cordova

在你恨我之前因为这违背了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下载无效。知道如何解决它吗?

0 个答案:

没有答案