【问题标题】:Jquery cross domain request? I just need a single digit returned, but I can't get it to workjQuery跨域请求?我只需要返回一个数字,但我无法让它工作
【发布时间】:2011-08-05 21:39:53
【问题描述】:

我正在制作一个 dashcode webapp,我想要的只是一个数字,即从外部服务器返回的 1 或 0,所以如果有更简单的方法,请告诉我。我正在使用http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/ 上的插件尝试发出跨域请求,但我尝试的一切都不起作用。

当我运行这段代码时

$.ajax({
  url: "status.html",
  context: document.body,
  success: function(data){
    alert("working" + data);
  }
});

一切正常,并显示带有文本“working1”的警报,但是当我运行此代码时

$.ajax({
  url: "http://externalsite.com/status.html",
  context: document.body,
  success: function(data){
    alert("working" + data);
  }
});

什么都没有发生。任何人都可以帮忙吗?这正是我现在正在尝试的,我还尝试了一个 .get 请求,返回的数据是“objectObject”我还尝试了一个 php 代理,但没有任何运气。我只是要求一个简单的解决方案来从外部服务器返回一个单一的号码。

【问题讨论】:

    标签: jquery web-applications proxy cross-domain dashcode


    【解决方案1】:

    如果可以控制其他服务器输出,放header:

    Access-Control-Allow-Origin: *
    

    在 http 响应中,并在没有插件或使用 YQL 的情况下使用 ajax 加载

    https://developer.mozilla.org/en/HTTP_access_control

    【讨论】:

    • 并非所有浏览器都支持en.wikipedia.org/wiki/XMLHttpRequest#Cross-domain_requests(但坦率地说,JSONP 可能也不支持)
    • @Jacek_FH 我读到 safari 支持它,要启用它,我是否只需将 Access-Control-Allow-Origin: * 放在我的 status.html 文件的标题中?
    • 在 HTTP 标头中,而不是 HTML - 例如使用 PHP:header('Access-Control-Allow-Origin: *');
    • 这绝对是我正在寻找的答案,我只是找不到允许我添加这个的网络主机。
    • 任何带有 php -> header('Access-Control-Allow-Origin: *');
    【解决方案2】:

    插件似乎正在通过 YQL (see line 18 here) 发出 JSONP 请求。

    如果您在 Chrome 中加载 Firebug 或开发人员工具,您是否看到正在发出 JSONP 请求?

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 1970-01-01
      • 2022-11-04
      • 2012-11-13
      • 1970-01-01
      • 2017-05-06
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多