Javascript $.get请求在ios设备上本地不工作
虽然ajax请求和iOS上的问题已经有了很好的文档记录,但我似乎找不到任何解决我的简单$.get问题的方法。请注意,这是一个rails应用程序,在本地计算机上运行 下面是一些coffeescript,它获取用户通知并将其显示在一个div中。这在本地所有设备上都能很好地工作,包括在访问本地IP地址时使用kindle(下面的代码省略了真实IP),但在任何iOS设备上都不能 我尝试将绝对路径添加为URL,而不是Javascript $.get请求在ios设备上本地不工作,javascript,ios,ruby-on-rails,ajax,coffeescript,Javascript,Ios,Ruby On Rails,Ajax,Coffeescript,虽然ajax请求和iOS上的问题已经有了很好的文档记录,但我似乎找不到任何解决我的简单$.get问题的方法。请注意,这是一个rails应用程序,在本地计算机上运行 下面是一些coffeescript,它获取用户通知并将其显示在一个div中。这在本地所有设备上都能很好地工作,包括在访问本地IP地址时使用kindle(下面的代码省略了真实IP),但在任何iOS设备上都不能 我尝试将绝对路径添加为URL,而不是/activites/notifications。我还将其编写为AJAX和$.get请求,但
/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 )
jQuery->
arr=[]
$(“#通知”)。单击->
arr.push(1)
如果到达长度
$(“#通知区”).html数据)
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
})
jQuery->
arr=[]
$(“#通知”)。单击->
arr.push(1)
如果到达长度警报(“不工作”)
成功:(数据)->
$(“#通知区”).html数据
})
如果有人需要更多的代码,就大声说出来。似乎是bootstrap造成的。我使用的是传统的引导导航栏和下拉元素。特别是锚链中的
.dropdown
类和数据切换
元素不知何故导致记录未加载/未显示。如果有人知道为什么会发生这种情况,或者知道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与加载记录之前切换notifications区域大致相同,stopPropagation调用,以便在单击notifications区域之外时关闭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()
jQuery->
arr=[]
$(“#通知”)。单击(e)->
arr.push(1)
e、 停止传播()
$(“#通知区域”).toggle()
如果到达长度
$(“#通知区”).html数据)
$(“#通知区”)。单击(e)->
e、 停止传播()
$(文档)。单击->
$(“#通知区域”).hide()
这被用来省略我的真实IP地址。占位符,所以你在真实代码中使用真实IP,但你的iOS设备拒绝这样做?您是否尝试过直接从Mobile Safari的URL栏访问该URL?我从未在使用iPad通过IP访问本地网络上的内容时遇到过任何问题。是的,我可以通过mobile safari url栏访问url。没有问题,这会按预期呈现通知,只有当我尝试通过此$请求通知时。get request没有任何效果。我在safari和xcode开发工具上也看不到任何javascript警告。