【问题标题】:jquery.get() - can't get the resultsjquery.get() - 无法得到结果
【发布时间】:2011-10-24 14:49:29
【问题描述】:

我只是无法从 jquery.get() 函数中获取结果,也无法弄清楚原因。

代码如下:

$('#some_button').live('click', function (e){
  var nr="some_number";
  var id="some_id";
  $.get('http://www.somelink.com',{PAGE_ID: id, nr: nr}, function(data) {
    alert(data);
  });
});

因此,当我单击按钮时,会发送 HTTP 请求,并且在 10 秒后我会收到回复以及我需要的 HTTP 200 OK 的结果(我使用了 wireshark),但不会将数据返回给浏览器。

任何想法为什么?

BR, 纽曼

【问题讨论】:

  • 这是跨域请求吗?
  • 您是在尝试从该“somelink.com>”获取数据,还是仅从该链接的页面获取信息?
  • 信息。当我使用 GET 发布数据时,作为回报,我会得到一些我需要的信息。我想我需要其他解决方案,因为这是一个跨域问题。
  • 让我困惑的是请求发送,我需要的信息被返回但无法显示......

标签: jquery http url get


【解决方案1】:

您似乎在使用$.get 从其他域获取信息,这是所有受尊重的浏览器所禁止的。您只能在同域请求中使用$.get

【讨论】:

  • 哦,我完全忘记了这个!或者我应该说,我认为这适用于 jquery get() :) 那么知道如何绕过这个吗?
  • 获取跨域数据的唯一方法是使用 JSONP -- api.jquery.com/jQuery.getJSON/#jsonp -- 这使用了一种非常专业的格式。
  • 您也可以使用服务器端脚本来抓取另一个域并使用$.get 代替:phpfour.com/blog/2008/03/cross-domain-ajax-using-php
  • 我想我会使用服务器端脚本..谢谢你的帮助!
  • @user925158 不客气。请不要忘记接受您最喜欢的答案。
【解决方案2】:

原因可能与您的期望完全不同,假设您尝试从脚本运行的不同域请求某些内容。您的浏览器将导致Cross Domain 错误。

您可以使用jsonp 或在您自己的服务器上交互请求。

This (Cross Domain AJAX Querying with jQuery)可以帮忙

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多