2012-03-07 34 views
1

私は以下のjQueryコードを使用しています。サーバーに実行すると、実行中のユーザーによっては、エラーが返され、時にはエラー(アラートボックスの実行)が返されることがあります。 100%一貫しているわけではありません。何が間違っていますか?ページはiFrame経由でFacebookタブに読み込まれます。.ajax()時にはエラーを返す場合があります。

entryform.phpがエコーしてメッセージを返す場合があり、それ以外の場合はエラーが返され、.ajax()によってエラーが発生します。サーバーサイドスクリプトの何も怪しげに見えるものはありません。常に成功したメッセージを返すように設定されています。 jQueryコードから派生したものは何ですか?

このページは200 OKステータスを返しますが、Firebugでは赤く表示されます。どのようなエラーがありますか?

のjQuery:

$(document).ready(function() { 
    $('#entryform_submit').click(function(e) { 
     e.stopImmediatePropagation(); 
     e.preventDefault(); 

     $('#entryform_submit_loader').show(); 

     var form_data = $('#entryform_form').serialize(); 
     $.ajax({ 
      url:'http://www.myurl.com/entryform.php', 
      type:'POST', 
      data:form_data, 
      success:function(return_data){ 
      //do stuff   
      }, 
      error:function(w,t,f){ 
       alert('Error submitting entry. Please try again later.'); 
      } 
     }); 
    }); 
}); 
+1

場合によっては表示されるPHPエラーは何ですか? – jrummell

+0

@jrummell Firebugを使用すると、PHPページは空白になり、赤色になります。どのようなエラーコードが返されるのかを確認する方法はありますか?サーバーエラーログにエラーは表示されません。 –

+0

@ジョン:だから、クライアントとajaxエラーではないですか? – zerkms

答えて

0

はそれを手に入れました!そのキーはFacebookでした。ユーザーがHTTPSでブラウズしている場合、そのページはHTTPSで呼び出されますが、.ajax()コールではHTTPページが呼び出されていましたが、これはクロスドメインとして設定されています。

if (!empty($_SERVER['HTTPS'])) { 
    // https is enabled 
} 

そして、HTTPまたはHTTPSのバージョンに、適切なAJAX呼び出しを行う:

キーは、ページがこれを使用してHTTPまたはHTTPSで表示されているかどうかを決定することでした。

関連する問題