为什么我不能在这个网站上执行Ajax?

时间:2017-08-10 16:50:47

标签: javascript jquery html ajax

寻求绕过同源策略(并且没有后端服务器 - 我只有一个网站,它的JS脚本托管在Google云端硬盘上)我决定使用WhateverOrigin来处理我正在进行的项目对于某人。

到目前为止,它适用于每个网站 - 除了this one,它返回404.

请参阅my JSFiddle test(或下面的代码片段),以便在无效工作页面和工作页面之间进行比较(由于某种原因,这些函数的工作顺序相反,但注释掉其中一个函数调用清楚地显示哪个URL正在工作,哪个不可用。

// for some reason this is calling the functions in the reverse order -- but try commenting out and you'll see that the second one doesn't work, the first one does

$(function() {

  works();
  notWorking();

  function works() {
    $.getJSON('https://whateverorigin.herokuapp.com/get?url=' + encodeURIComponent("http://afcl.ussoccerda.com/sam/teams/index.php") + '&callback=?', function(data) {
      alert(data.contents);
    });
  }

  function notWorking() {
    $.getJSON('https://whateverorigin.herokuapp.com/get?url=' + encodeURIComponent("http://afcl.ussoccerda.com/sam/teams/index.php?team=1642601") + '&callback=?', function(data) {
      alert(data.contents);
    });
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Hurl.it能够获得它的页面数据就好了: enter image description here

我不知道我在编程方面做错了什么,或者我怎么能解决这个问题。除了使用WhateverOrigin之外,我没有太多的选择,因为我的整个项目都基于它,除了这一个网页之外其他一切都在工作。

1 个答案:

答案 0 :(得分:0)

我假设在最终版本中,Web应用程序和服务器将位于同一个域中,您只需要在开发期间执行跨源请求。 如果您只需要在开发中进行跨源请求,那么使用chrome进行开发并安装&#34; Allow-Control-Allow-Origin:*&#34; chrome的插件并启用跨源访问。