0

虽然关于 ajax 请求和 iOS 的问题已经得到了很好的记录,但我似乎找不到任何可以解决我简单的 $.get 问题的东西。请注意,这是一个在本地机器上运行的 rails 应用程序。

下面是一些获取用户通知并将其显示在 div 中的咖啡脚本。这适用于本地的所有内容,包括访问本地 IP 地址时的 kindle(下面的代码省略了真实 IP),但不适用于任何 iOS 设备。

我尝试将绝对路径添加为 URL 而不是/activites/notifications. 我也将其编写为 AJAX 和 $.get 请求,但在 iOS 上都不起作用。

如何获取下面的 GET 请求以在 iOS 设备上本地工作?

获取请求

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
    })

如果有人需要更多代码,请大声喊叫。

4

1 回答 1

0

似乎引导程序是罪魁祸首。我正在使用传统的引导导航栏和下拉元素。特别是锚链接中的.dropdown类和data-toggle元素以某种方式导致记录不加载/不显示。如果有人知道为什么会发生这种情况或从引导程序更新,那么听到它会很棒。现在这是我解决问题的方法。

导航栏结构。从锚标记中删除了数据切换和下拉类。

<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 调用以便当您在通知区域外单击时关闭 div

 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()
于 2013-10-01T20:16:18.140 回答