在Magnific-Popup模式中显示PDF文件

时间:2016-07-15 10:00:28

标签: javascript ajax pdf magnific-popup

我的网站上有一个表单,用户需要填写以生成PDF文件。如果表单中有错误,服务器将使用带有错误列表的json对象进行响应,否则将响应PDF文件(作为字符串)。我正在尝试在Magnific-Popup(https://www.npmjs.com/package/magnific-popup)中显示该PDF文件。

    $('.preview-button').on('click', function (e) {
        event.preventDefault();
        var theLink     = $(this);
        var formElement = theLink.closest("form");

        $.ajax({
            url: theLink.attr('href'),
            method: 'GET',
            data: formElement.serialize(),
            success: function (response, textStatus, jqXHR) {
                var contentType = jqXHR.getResponseHeader("content-type") || "";
                if(contentType.indexOf('pdf') > -1){
                    // How can I tell to magnific popup to display the response as PDF?
                    $.magnificPopup.open({
                        // tell magnific popup to use the response...
                        type: 'iframe', 
                        closeOnBgClick: false
                    });
                }
                else{
                    if (response.hasOwnProperty('errors')){
                        // Form has error, show them
                        alert(response.errors);

                    }
                }
            }
        });

    });

1 个答案:

答案 0 :(得分:0)

这可能对有相同问题的人有用:我决定在服务器中生成临时pdf文件,并将路径作为响应发送到该文件,而不是将pdf文件作为响应发送。然后我们可以告诉magnificPopup在iframe中显示它。