私は、ユーザー データ (名前、性別、誕生日など) を収集し、Heroku でホストされている Rails アプリに送信する JavaScript (jQuery) アプリに取り組んでいます。Rails はリクエストから JSON を読み取り、新しいレコードを作成することになっています。私のコードは次のとおりです
params = {};
params.session_user = {};
var e = {
"username" : localStorage.getItem("UN"),
"gender" : gender,
"birthdate" : birthdate,
"session_id" : getSessionID(),
};
params.session_user = e;
$.post("https://***.herokuapp.com/session_users", params);
これは、Firefox、Chrome、Opera、および IE で機能しますが、Safari では機能しません。Safari は、POST 要求がキャンセルされ、データベースにレコードが作成されていないと言い続けます。
同様に、jQuery アプリは、アプリの各ページで focus_events と呼ばれる使用状況データも収集します。同じフォーマットを使用しましたが、
var e = {
"timestamp" : (new Date).toUTCString(),
"focus_type" : type,
"page" : page_id,
"problem_set": problem_set_id,
"session_id" : getSessionID(),
}
params={};
params.focus_event={};
params.focus_event=e;
$.post("https://***.herokuapp.com/focus_events",params);
これはほとんどの場合機能します。ただし、場合によっては、すべてのブラウザで POST リクエストがキャンセルされたものとして表示されることもあります。これとSafariの問題の両方について、どんな助けでも大歓迎です