20

モバイル Web アプリケーションで PDF をダウンロードする (またはダウンロードしようとする) ときに、Chrome から次のメッセージが表示されます。

「警告: 何かが正しくありません!... アクセスしようとしているサイトの動作がおかしいため、Chrome は URL が正しいことを確認できません。」

これは Safari で正常に機能しており、基本的にはこれを行っています。

  1. ロード時に、表示したいドキュメントに問題がないことを確認する呼び出しを行います。
    • ドキュメントに問題がある場合は、ユーザーにメッセージを送信してからタブを閉じます
  2. タブを指示して、PDF をダウンロードするアドレスに移動します。

あまりにも多くのコードを投稿しない限り、Javascript は次のようになります。

DoRequest ("print_report",
           "VALIDATE",
           mycallback);

function mycallback (data,error) {

    var h_href = "";
    var h_widget = "";

    if(error == true) {
        window.close(); 
        return;
    }    

    h_href = GenerateHREF( "print_report", "PRINT" );

    window.location.href = h_href;        
}

GenerateHREF によって提供される URL は、元のサイトと同じであり、元のサイトに関連しています。
MIME タイプは application/pdf に設定されています。content-disposition はインラインに設定されています。content-size ヘッダーも設定しようとしましたが、効果がないようです。

Content-Disposition: attachment; filename="pp66.26.pdf"
Content-Length: 31706
Content-Type: application/pdf

私は何かが欠けています...ただ何ですか?

4

3 に答える 3

0

また、ポップアップの動作はおそらく疑わしいリストの上位にあると思います(特に、ポップアップがユーザーによってブロックされている場合、特に window.close(); 行はかなり疑わしいようです)。

ただし、最終的な目標はファイルをダウンロードすることなので、応答ヘッダーを次のように変更してみてください。

Content-Disposition: attachment; filename="pp66.26.pdf"
Content-Length: 31706
Content-Type: applicaton/octet-stream

または、特定のフォルダー内のすべての pdf を強制的に .htaccess ファイル経由で強制的にダウンロードしてから、使用している location.href 経由でそれらにリンクすることもできます。

<FilesMatch "\.pdf$">
ForceType applicaton/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
于 2014-10-09T19:05:44.843 に答える
0

ポップアップ/ダウンロードの問題である場合、iframe を使用して表示できるでしょうか?

<iframe src="downloads/report.pdf"></iframe>
于 2013-10-22T22:18:08.733 に答える