使用 JQuery/javascript 绕过跨源策略,无法访问远程服务器
Bypassing cross origin policy using JQuery/javascript with no access to remote server
我想使用 javascript 检索以下 JSON:
https://www.gov.uk/api/organisations/skills-funding-agency
如果我调用 JsonP,我会得到:
callback=jQuery1113043552865949459374_1434727982051&_=1434727982052' 因为它的 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查。
如果我调用 JSON,我会得到:
XMLHttpRequest 无法加载请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源 'null'。
这可能吗?我一直在谷歌搜索几个小时但没有任何成功。我见过一些 PHP 解决方案,但理想情况下我不想安装 PHP 来执行此操作。
提前致谢!
如果您不想安装 PHP 来执行此操作,为什么要使用 php 进行标记?您需要使用 Server Side Script like Proxy PHP 文件,读取内容并正确执行。
Proxy.php
:
<?php
header("Content-type: application/json");
die(file_get_contents($_GET["url"]));
?>
并这样称呼它:
url: "proxy.php?url=http://gov.uk/blah/blah"
我想使用 javascript 检索以下 JSON:
https://www.gov.uk/api/organisations/skills-funding-agency
如果我调用 JsonP,我会得到:
callback=jQuery1113043552865949459374_1434727982051&_=1434727982052' 因为它的 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查。
如果我调用 JSON,我会得到:
XMLHttpRequest 无法加载请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源 'null'。
这可能吗?我一直在谷歌搜索几个小时但没有任何成功。我见过一些 PHP 解决方案,但理想情况下我不想安装 PHP 来执行此操作。
提前致谢!
如果您不想安装 PHP 来执行此操作,为什么要使用 php 进行标记?您需要使用 Server Side Script like Proxy PHP 文件,读取内容并正确执行。
Proxy.php
:
<?php
header("Content-type: application/json");
die(file_get_contents($_GET["url"]));
?>
并这样称呼它:
url: "proxy.php?url=http://gov.uk/blah/blah"