【问题标题】:Using cross origin JSON from third party on client side js?在客户端js上使用来自第三方的跨源JSON?
【发布时间】:2014-01-19 03:04:59
【问题描述】:

虽然在我想确认我完全理解这个问题之前已经提出了这个问题:

我有一个将从 mydomain.com 加载的 javascript 浏览器客户端应用程序。 我有一个第三方 JSON 资源,我想在我的应用程序中使用它。

第三方资源位于不同的域 (http://campbx.com/api/xticker.php) 并返回纯 JSON。它在我无法控制的服务器上。

据我了解,我不能使用 JSONP,因为资源没有适当的 JSONP 回调支持(填充)。

我也不能使用 CORS 或普通的旧 XMLHttpRequest,因为资源没有“Access-Control-Allow-Origin”标头。

所以到主要问题...有没有办法在我的客户端应用程序中使用此资源而无需编写后端代理?我对我的选择是否正确?我可以以某种方式将 JSONP 用于返回纯 JSON 的资源吗?

到目前为止,当我尝试在脚本标签中加载资源时出现“Uncaught SyntaxError: Unexpected token:”错误,当我尝试使用 CORS 时出现“No Access-Control-Allow-Origin”标头错误。

【问题讨论】:

  • 不,没有代理你不能使用它。然而代理将是大约 3 行 PHP

标签: javascript xmlhttprequest client jsonp cors


【解决方案1】:

详细说明我的评论

不,你不能在没有代理的情况下使用它。然而代理将是几行 PHP

<?php 
header("Content-type:application/json");
echo file_get_contents('http://campbx.com/api/xticker.php');
?>

【讨论】:

  • 谢谢,php 端代码对我来说不是问题,我只是想确认没有办法纯粹在客户端执行此操作,对于这么小的功能。
【解决方案2】:

您只能使用服务器端代理

您对不能使用 JSONP 或 CORS 的理解是正确的。

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多