-3

我在一个基于网络的应用程序中工作,它必须在第 3 方网站上从他们的帐户向用户显示信息,他们将提供他们的登录详细信息,我必须从他们的帐户中提取数据并将其显示在我的基于网络的应用程序上但是问题是第 3 方网站不允许任何其他人访问他们没有在他们的数据库中注册的 ip 的帐户。所以,我不能使用任何服务器端或任何类型的代理,我必须使用用户 ip 来发送和接收站点的数据

所以我的主要问题是“如何以任何基于客户端的语言获得跨域请求的响应”。我听说这是不可能的,因为它违反了跨域策略,但我发现一些网站告诉它可以使用 JSONP 和一些 src 属性。我实际上很困惑如何做到这一点。我需要一个该方法的示例,例如我向 3rd 方站点发出请求并能够读取他们发送的响应。

请帮我 。

谢谢

4

2 回答 2

0

您不能让访问者的浏览器向任意网站发出 HTTP 请求并用 JavaScript 处理响应。

如果第 3 方构建了 JSON-P API,您可以使用它。

如果第 3 方支持 CORS(并且您的访问者有兼容的浏览器,那么您可以使用 XHR。

除非您被告知它们是受支持的,否则对这两种方法中的任何一种进行详细介绍都没有什么意义。(如果第三方将他们的服务锁定到特定的 IP 地址,如果任何一个都支持,我会感到惊讶)。

于 2012-05-16T08:58:17.603 回答
0

对于 JSONP 请求,您可以使用库或手动完成。对于后者,您插入一个具有所有请求信息和附加回调属性<script>的属性的新标签。src

 <script src="//remote.host.com/getJSONP.php?param1=0&callback=myFunc"></script>

然后,您必须在您的页面中定义一个与回调(此处)同名的函数,该函数myFunc处理响应。

function myFunc( data ) {
  // do something with data
}

响应通常是一个或多或少复杂的 JS 对象,然后您可以在回调函数中使用它。

注意:您只能传递 GET 参数,不能传递 POST 或任何其他类型!

于 2012-05-16T08:59:35.703 回答