Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自响应符号的数据无法设置为iframe_Javascript_Jquery_Ajax_Iframe_Httpresponse - Fatal编程技术网

Javascript 来自响应符号的数据无法设置为iframe

Javascript 来自响应符号的数据无法设置为iframe,javascript,jquery,ajax,iframe,httpresponse,Javascript,Jquery,Ajax,Iframe,Httpresponse,我想检查来自Api的响应是否成功,然后将其放入iframe中 如果我这样叫它两次。。。它起作用了 function getPDF(fileDirectorGuid) { if ($('#viewDownloadWindow').is(":visible")) { $.ajax({ url: $('#fdApiURL').val() + 'getDocAsPDF' + FIRST_ARGS + '&guid=' + fileDirectorGuid + '&

我想检查来自Api的响应是否成功,然后将其放入iframe中

如果我这样叫它两次。。。它起作用了

function getPDF(fileDirectorGuid) {
if ($('#viewDownloadWindow').is(":visible")) {
    $.ajax({
        url: $('#fdApiURL').val() + 'getDocAsPDF' + FIRST_ARGS + '&guid=' + fileDirectorGuid + '&fallbackToNative=true',
        type: 'GET',
        success: function (data) {
            if (data == null) {
                alert("failed");
            }
            else {
                $('#pdfFrame').attr('src', $('#fdApiURL').val() + 'getDocAsPDF' + FIRST_ARGS + '&guid=' + fileDirectorGuid + '&fallbackToNative=true');
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("Failed");
        }
    });
}
但是我不想再打两次电话了,结果并不像我想的那样

function getPDF(fileDirectorGuid) {
if ($('#viewDownloadWindow').is(":visible")) {
    $.ajax({
        url: $('#fdApiURL').val() + 'getDocAsPDF' + FIRST_ARGS + '&guid=' + fileDirectorGuid + '&fallbackToNative=true',
        type: 'GET',
        success: function (data) {
            if (data == null) {
                alert("failed");
            }
            else {
                $('#pdfFrame').attr('src', data);
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("Failed");
        }
    });
}
在调试器中查看时,数据如下所示

"%PDF-1.6
1 0 obj
<<
/Length 2 0 R
/Filter  /FlateDecode
>>
stream
x��[�%Iv�wO�����H�|��8&`%ِږ8�.���D�J�h  ��^of�Z�;wsj�g�<�4��O�X�Nq���c��������l����������7��?����>���S������4��>�y||��z�<J����Gݏ�c�?C����6�����?
%PDF-1.6
10 obj
>
流动

x��[�%四,�沃�����H�|��8&`%ِږ8�.���D�J�H��^属于�Z�;华尔街日报�G����s������4.��>�y||��Z� iframe的src属性是一个url,您正在设置实际的pdf数据。您可以使用blob url来实现您的目标

$.ajax({
    url: $('#fdApiURL').val() + 'getDocAsPDF' + FIRST_ARGS + '&guid=' + fileDirectorGuid + '&fallbackToNative=true',
    type: 'GET',
    xhr:function(){
        var xhr = new XMLHttpRequest();
        xhr.responseType= 'blob'
        return xhr;
    },        
    success: function (data) {
        if (data == null) {
            alert("failed");
        }
        else {
            var url = window.URL.createObjectURL(data);
            $('#pdfFrame').attr('src', url);
        }
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert("Failed");
    }
});

太棒了,我知道我错过了一些很简单的东西,这很有效。