【问题标题】:Bypassing cross origin policy using JQuery/javascript with no access to remote server使用 JQuery/javascript 绕过跨源策略,无法访问远程服务器
【发布时间】:2015-09-05 16:02:55
【问题描述】:

我想使用 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”标头。因此不允许访问 Origin 'null'。

这有可能吗?我一直在谷歌搜索几个小时没有任何成功。我见过一些 PHP 解决方案,但理想情况下不想安装 PHP 来执行此操作。

提前致谢!

【问题讨论】:

  • 使用您自己的 PHP 代码创建代理 curl 请求以调用远程站点。然后从你的 JavaScript 调用你的 PHP curl 代理。

标签: javascript php jquery json jsonp


【解决方案1】:

如果您不想安装 PHP 来执行此操作,为什么要使用 标记?您需要使用像代理 PHP 文件这样的服务器端脚本,它可以读取内容并正确执行。

Proxy.php:

<?php
    header("Content-type: application/json");
    die(file_get_contents($_GET["url"]));
?>

然后这样称呼它:

url: "proxy.php?url=http://gov.uk/blah/blah"

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2016-05-29
    • 2015-12-11
    • 1970-01-01
    • 2015-07-11
    • 2022-01-12
    • 2020-03-06
    • 2013-03-17
    • 2022-06-27
    相关资源
    最近更新 更多