我正在开发一个 javascript (jQuery) 应用程序,该应用程序收集用户数据(姓名、性别、生日等)并将其发送到 Heroku 托管的 Rails 应用程序。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问题的任何帮助将不胜感激