我正在使用基于网络的应用程序,该应用程序必须通过第三方网站上的帐户向用户显示信息,他们将提供他们的登录详细信息,我必须从他们的帐户中提取数据并在我的网站上显示基于应用程序,但问题是第三方网站将不允许任何其他人访问他们没有在其数据库中注册的IP的帐户。所以,我不能使用任何服务器端或任何类型的代理我必须使用用户IP来发送和接收网站的数据。
所以我的主要问题是“如何以任何基于客户端的语言获取跨域请求的响应”。我听说这是不可能的,因为它是违反跨域政策,但我发现一些网站告诉它可以使用JSONP和一些src属性。我真的很困惑怎么做。我需要一个该方法的示例,例如我向第三方网站发出请求并能够阅读他们发送的resone。
请帮帮我。
由于
答案 0 :(得分:0)
您无法让访问者的浏览器向任意网站发出HTTP请求,并以JavaScript方式处理响应。
如果第三方已经构建了JSON-P API,您可以使用它。
如果第三方支持CORS(并且您的访问者有compatible browser,那么您可以使用XHR。
除非你被告知他们受到支持,否则没有必要详细讨论这两种方法。 (如果第三方将其服务锁定到特定的IP地址,如果支持其中任何一个,我会感到惊讶。)
答案 1 :(得分: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或任何其他类型!