【问题标题】:a strange $.get()一个奇怪的 $.get()
【发布时间】:2010-01-21 14:21:36
【问题描述】:

我有这段代码,一个简单的 jQuery GET:

    $.get(url, params, function(){
      function_call()
    })

我想知道为什么 function_call() 永远不会被执行。 url 的服务器已启动并正在运行,将函数更改为 $.ajax() 显示没有错误(error 选项未执行),但它不起作用。

有什么线索吗? params 是一个简单的两个字段的 JS 对象,当然$.get() 用过上千次都没问题。

【问题讨论】:

  • 运行 Firebug 或 Fiddler 并确保服务器正在回复。
  • 我相信你不能跨域发出 ajax 请求。我认为有一些插件或其他方法可以让你解决这个问题。
  • anomareh 几乎肯定有它;您是否遇到了同源策略 (en.wikipedia.org/wiki/Same_origin_policy) 的问题?

标签: javascript jquery ajax get callback


【解决方案1】:

根据您提供的信息(以及documentation),它应该可以正常工作。你确定你真的在调用它($.get)吗?你能创建一个最小的、独立的问题示例吗? (这有两件事:1. 它通常可以帮助您自己解决问题,因为您在这个过程中解决了问题;2. 它给了我们更多的工作机会。:-))

另外,anomareh 提到(在评论中)Same Origin Policy,您可能会遇到。

【讨论】:

    【解决方案2】:

    你的语法看起来不错。当这样的事情对我不起作用时,那是因为我在其他一些地方犯了一个愚蠢的错误,比如回调函数中的语法错误或制定 URL 等。

    我们需要了解更多您的流程才能提供更多帮助。试着让你的回调函数做一个简单的警报。在调用 $.get() 之前发出警报,最好是发出 URL。如果您控制服务器功能,请在此处放置一个断点(或您需要做的任何事情)以确保调用到达那里。切换回 $.ajax() 并查看如果您将 URL 切换为虚假的内容,是否会调用错误回调函数。

    我想我的 javascript/jquery 犯了很多愚蠢的错误,我擅长调试想法。 :)

    【讨论】:

      【解决方案3】:

      你试过function_call()后面的分号吗?

      我唯一会尝试的另一件事是$.get(url, params, function_call) --- 这只有在你的函数调用没有参数时才有效——注意function_call 后面故意没有()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 2021-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-17
        相关资源
        最近更新 更多