虽然关于ajax请求和iOS的问题已经有了很好的记录,但我似乎找不到任何修复我的简单$ .get问题的东西。请注意这是一个rails应用程序,在本地计算机上工作。
下面是一些coffeescript,用于获取用户通知并将其显示在div中。这适用于本地的所有内容,包括访问本地IP地址时的kindle(下面的代码省略了真正的IP),但不在任何iOS设备上。
我尝试将绝对路径添加为网址而不是/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
})
如果有人需要更多代码,请大声喊。
答案 0 :(得分:0)
似乎引导程序是罪魁祸首。我正在使用传统的bootstrap导航栏和下拉元素。具体而言,锚链接中的.dropdown
类和data-toggle
元素以某种方式导致记录无法加载/不显示。如果有人知道为什么会发生这种情况或者从bootstrap更新,那么听到它会很棒。目前我就是如何解决这个问题的。
Navbar结构。从锚标记中删除了数据切换和下拉类。
<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()