2009-06-16 2 views
2

私はfile.Theをアップロードするためのフォームを持っているポスト要求が完了した後も次のように<html>は次のとおりです。 Firefoxはカーソルと待っ示し、「ロードを..」

<div id="divModalPopup" class="ui-dialog-content" style="height: 139px; width: 268px;"> 
    <form method="post" action="upload.php" target="uploadframe" enctype="multipart/form-data"> 
    Please choose a file to upload [only zip with shape files and no folders]: 
    <input type="file" name="uploadFile"/><br/><input type="submit" value="Upload"/>  
    </form> 
    <iframe style="display: none;" onload="uploadStatus();" id="uploadframe" name="uploadframe"/> 
</div> 

し、アップロードをクリックする上

、私が送っその応答がiframeに表示されるphpファイルへのポストリクエスト。同じのためのJavaScript関数:

function uploadStatus(){ 

    var resp = document.getElementById('uploadframe').contentDocument.body.innerHTML; 

    if ("" != resp){ 

     jQuery("#divModalPopup").html(resp); 

    } 

} 

私はここに直面しています問題は、私は(放火魔が正しい応答を示し)、応答を取得した後も、<firefox>タブで待機カーソルとロード..アイコンを示し、ということです。

これがなぜ起こっているのかについての考えはありますか?

phpファイルにecho文だけがあります。

また、これはChromeやSafariなどの他のブラウザでは発生しません。 tcpパケットキャプチャは、トランザクションが完了したことを示します。

+2

我々は、おそらく何か*がまだロードされて*アップロード –

+1

ながら、(真){} –

+0

をやっているPHPコードを確認する必要があります - 放火犯の純パネルにはどのようなものに見えるのでしょうか? – annakata

答えて

-1

ファイヤーバグを無効にしてから試してください。ただ一つの可能​​性を排除するためです。

1

他のどのブラウザも出展していないため、Firefoxの特定のバグである可能性がありますか?ファイアウォールのtcpパケットキャプチャと "net"タブは、応答がPHPスクリプトによって完全に返送されたことを確認する必要があります。

1

あなたの回答に何かを入れてください。あなたのPHPファイルにecho文しかない場合、応答は空であり、Firefoxは空のAjax応答に問題があることが知られています。

あなたのphpでこれを試してみてください:

<?php 
echo("something"); 
header("Content-type: text/html"); 
?> 
1

何Content-Lengthヘッダがないときこれは通常起こる(またはヘッダが存在するが、間違ったサイズである)

をあなたは、ヘッダーをご覧ください。ヘッダがない場合、あなたはあなたがPHPの終了タグの後に任意の奇妙な性格を持っていないことを確認し、

また、.htaccessファイルで少しプレイしているよ「?>」

+4

downvoteありがとう。 実際に私が記述しているシナリオは私に起こった。 私たちはあなたを助けようとしています。これがありがとうございます。 –

1

私がいました同様の問題を抱えており、私はこれが有用であることが判明したarticleを見つけました。

基本的には、onloadハンドラ内のDOMからiframeを削除するときに問題が発生します。

1

FirebugプラグインがFirefoxにインストールされている場合は、すべてのhttp要求が有効であることがわかります。 Firebugを開いて、「ネット」タブを開き、ページをリロードします。 あなたはPOST/GET要求が呼び出されているのを見ることができ、うまくいけばその問題を解決することができます。

1

'; return false;'あなたのJavaScriptコールの後。

<iframe style="display: none;" onload="uploadStatus();return false;" id="uploadframe" name="uploadframe"/> 

関連する問題