0

ajax リクエストと iOS の問題はある程度十分に文書化されていますが、単純な $.get の問題を修正するものを見つけることができないようです。これは、ローカル マシンで動作する Rails アプリであることに注意してください。

以下は、ユーザーの通知を取得して div に表示する coffeescript です。これは、ローカル IP アドレス (以下のコードでは実際の IP は省略されています) にアクセスするときの kindle を含め、ローカルのすべてでうまく機能しますが、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
    })

さらにコードが必要な場合は、ただ叫んでください。

4

1 に答える 1

0

ブートストラップが原因だったようです。従来のブートストラップ ナビゲーション バーとドロップダウン要素を使用しています。具体的には、アンカー リンクの.dropdownクラスとdata-toggle要素が原因で、何らかの理由でレコードが読み込まれなかったり、表示されなかったりしました。なぜこれが起こるのか、またはブートストラップからの更新を誰かが知っているなら、それを聞くのは素晴らしいことです. 今のところ、私が問題を解決した方法は次のとおりです。

ナビゲーションバーの構造。アンカー タグから data-toggle と dropdown クラスを削除しました。

<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 に答える