簡體   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