2013-10-01 83 views
0

雖然ajax請求和iOS上的問題已有所記載,但我似乎找不到解決我的簡單$ .get問題的任何問題。請注意,這是一款在本地機器上運行的Rails應用程序。

下面是一些提取用戶通知並在div中顯示它們的coffeescript。這適用於本地的所有內容,包括訪問本地IP地址時的kindle(以下代碼省略實際IP),但不適用於任何iOS設備。

我曾嘗試添加絕對路徑作爲URL而不是/activites/notifications。我也寫過它作爲AJAX和$ .get請求,但都不適用於iOS。

如何獲取下面的GET請求以在iOS設備上本地工作?

GET請求

jQuery -> 
     arr = [] 
     $("#notifications").click -> 
     arr.push(1) 
     if arr.length <= 1 
      $.get("http://68.40.3.2:3000/activities/notifications", (data) -> 
      $("#notifications-area").html data) 

AJAX請求

jQuery -> 
    arr = [] 
    $("#notifications").click -> 
    arr.push(1) 
    if arr.length <= 1 
    $.ajax({ 
     url: "http://68.40.3.2:3000/activities/notifications", 
     cache: false, 
     timeout: 100000, 
     type: "GET", 
     error: -> alert("didnt work") 
     success: (data) -> 
      $("#notifications-area").html data 
    }) 

如果有人需要更多的代碼就罵。

+0

這是外面的DIV關閉用於省略我的真實IP地址。佔位符 – dodgerogers747

+0

因此,您在真實代碼中使用真實IP,但您的iOS設備拒絕這麼做?您是否嘗試過直接從移動Safari瀏覽器的網址欄訪問該網址?我從來沒有遇到任何問題,使用我的iPad在本地網絡上通過IP訪問IP。 –

+0

是的,我可以通過移動Safari瀏覽器的URL欄訪問網址沒有問題,這使得通知按預期呈現,它只有當我試圖通過這個$。 Safari瀏覽器和xcode開發工具都看不到任何javascript警告。 – dodgerogers747

回答

0

似乎bootstrap是罪魁禍首。我使用傳統的引導程序導航欄和下拉列表元素。具體來說,錨鏈接中的.dropdown類和data-toggle元素以某種方式造成記錄無法加載/未顯示。如果有人知道爲什麼會發生這種情況,或者從bootstrap更新,聽到它會很高興。現在這裏是我如何解決這個問題。

導航欄結構。從定位標記中移除了數據切換和下拉類。

<li class="dropdown"> 
    <a id="notifications" href="#" class="<%= number_of_activities(current_user) > 0 ? 'new-notifications' : '' %>" title="Notifications"> 
     <div class="notifications-count large" id=""> 
     <%= number_of_activities(current_user) %> 
     </div> 
    </a> 
    <ul class="dropdown-menu span6" id="notifications-area"> 
    </ul> 
</li> 

notifications.js.coffee保持大致相同的期望記錄加載之前切換通知區域,和stopPropagation調用,以便當您單擊通知區域

jQuery -> 
    arr = [] 
    $("#notifications").click (e) -> 
     arr.push(1) 
     e.stopPropagation() 
     $('#notifications-area').toggle() 
     if arr.length <= 1 
     $.get("/activities/notifications", (data) -> 
      $("#notifications-area").html data) 

$('#notifications-area').click (e) -> 
    e.stopPropagation() 

$(document).click -> 
    $("#notifications-area").hide() 
相關問題