2011-07-30 12 views
2

次のコードはChromeとSafariでは完全に機能しますが、Firefoxではうまく機能します。jQuery .ajax()PHPプロキシへのリクエストがエコーされた値を受け取らない(FIREFOXのみ)

初のjavascript:

$.ajax('/sn.php',{ 
    type: 'POST', 
    dataType: 'json', 
    data: {...stuff}, 
    complete: function(response){ 
     console.log(response); 
     // do stuff with response... 
    } 
}); 

とカールを(使用しています(MYサーバー上の)PHPリレー)POSTまたは別のドメインから取得するには:

// setup cURL... 
$token = curl_exec($handle); 
echo $token; 
error_log('token='.$token); 

$トークンが中に完全に現れますerror_logなどはChromeとSafariでは完璧に機能しますが、Firefoxではajaxのステータスが「エラー」で、responseTextは空白です。私はこの壁の上で数日間壁に向かって頭を叩いていた。

答えて

1

Firefoxは、ajaxリクエストのためにStatus: 0を返していました。この頭の上に基づいてblog postonSubmit='return false;'に私のフォームを更新し、今は完璧に動作します。

1

私はここで間違ったツリーを吠えているかもしれませんが、あなたのPHPコードのerror_logへの呼び出しと思われます。それを取り除くと、助けになるのですか?

また、それはそれで問題が解決しないだろうが、それは少なくともあなたにいくつかのより多くのデバッグ出力を与えるでしょう、あまりにも

$.ajax('/sn.php',{ 
    type: 'POST', 
    dataType: 'json', 
    data: {...stuff}, 
    complete: function(response){ 
     console.log(response); 
     // do stuff with response... 
    }, 
    error: function (jqXHR, textStatus, errorThrown){ 
     console.dir(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    } 
}); 

のようなものを、あなたのアヤックスの要求にエラーハンドラを設定するために役立つかもしれません見るから

編集カップル他のアイデア249692から。あなたのウェブサーバーは、要求のためにcorrect mime typeを返していますか? beforeSendを試してみて設定してください。overrideMimeType

+0

良いもの - console.dirについても知らなかった。 (1)error_logを削除しようとしましたが、修正しませんでした。(2)エラーステータスのロギングが追加され、readyState:0、responseText: ""、status:0、statusText: "text"何もあまり明らかにしていない(3)今すぐMIMEタイプを調べる、brb – brittohalloran

+0

beforeSendでMIMEタイプ( 'application/json')を設定しようとしましたがうまくいかなかった。また、ヘッダー( 'Content-Type:application/json')を使用してPHPでMIMEタイプを設定しようとしましたが、役に立たなくなりました。しかし、良いアイデア。 FirefoxはWebkitブラウザよりもMIMEタイプのエラーに敏感です。 – brittohalloran

1

FirefoxにはWebkitブラウザのようにネイティブconsole.logがありません。それをコメントするかalert()と置き換え、それがうまくいくと思います。

+0

試してみました - サイコロはありません。 console.log()に送られたメッセージはうまくいっていますが、私はファイヤーバグがインストールされています。 ChromeとFirefoxの違いはどこにあるのだろうか。 – brittohalloran

関連する問題