繁体   English   中英

Ruby Rails-具有AJAX POST的Javascript在本地运行,但在Heroku中不运行

[英]Ruby Rails - Javascript with AJAX POST working locally but not Heroku

我似乎遇到了一些有关JS和Heroku的长期问题。 尽管不完全正确-我的某些JS可以工作,但不是全部。

我在application.js有以下内容:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .


 function submitForm(pagenamed, starttime, endtime) {
      alert("checked the button - worked");
      $.ajax({
           type:'POST', 
           url: '/pagetimes/create', 
           data: $.param({ pagetime: {pagename: pagenamed, start: starttime, end: endtime }}),
           async:false
      });
 }

var d = new Date();
var starttime = d.getTime();
var pagename = document.URL
alert("load works START:" +d+ starttime + pagename);

window.onbeforeunload=function() {
var j = new Date();
var endtime = j.getTime();
alert("unload works START:" +d+ starttime +"END:"+j+ endtime +pagename );
      $.ajax({
           type:'POST', 
           url: '/pagetimes/create', 
           data: $.param({ pagetime: {pagename: pagename, start: starttime, end: endtime }}),
           async:false
      });
}

您可能会猜到,这是一个JS,它通过向create动作发送AJAX调用来捕获花费在页面上的时间并将其记录在模型下(页面时间)(所有这些都无需用户输入)。 我仍在开发中,因此我已经留下了很多警报来向我展示这些功能何时被触发。 我还可以使用一个按钮来调用该函数,该按钮可以有效地完成相同的功能(构建时如何调试AJAX调用)。 所有这些都可以在localhost(开发)中无缝运行,但是只有按钮可以在Heroku上的生产环境中使用。 甚至考虑到了这一点, onloadonbeforeunload操作在预期的时候都会在Heroku上触发(我得到的警报与开发中完全相同),但是数据库中什么都没有显示。 对这里出什么问题有任何想法吗?

关于预编译资产,然后推送到Heroku,或调整production.rbapplication.rb文件中的各种选项,有很多答案,但都尝试了很多,但都无济于事。 还有一些答案报告了application.js文件中//=...行的顺序很重要(与引导程序有关),我也尝试过,但再次没有尝试。

它必须与我在事件函数中声明的变量或async:none选项有关吗? 否则我就没主意了。 我正在为本地主机和heroku应用程序使用相同的浏览器。 有什么明显的我可能会丢失的东西吗? 使用Rails 3,Win7,没有花哨的宝石。

更新1:

我发现以下内容: JavaScript未在Heroku上加载,但在本地运行 ,这听起来与我的问题非常相似。 可以吗?

更新2:

我在警报中包含了pagename变量,以查看其是否正常运行。 没问题,警报中会显示正确的信息。 还可以使按钮和onbeforeunload异步选项相同。 不是。 现在,关于这些ajax调用的所有内容都是完全相同的,但是一个有效,而另一个无效。 是什么赋予了?

这是(对我而言)答案-与JS无关,仅与postgres DB有关。 我的整数太大。

Postgres DB上的整数超出范围

Heroku / Postgres错误:整数超出范围

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM