1

我需要提供一种网络服务,我的客户可以通过 AJAX 在他们的网站上使用它。由于 XSS 防护,他们无法调用我的 Web 服务。客户端无法制作代理来访问我的 Web 服务。

我正在尝试在我的服务器上创建一个 JavaScript 库,他们可以将其包含在他们的网站中,这反过来又会调用服务器上的 Web 服务。不知何故,它似​​乎不起作用。

服务器位于 Google App Engine。

所以问题是:如何在我的服务器上创建一个使用该服务器后端的 javascript 库,并且远程用户可以使用它?很像 google maps js API 的工作原理?

4

2 回答 2

1

您应该改用跨域资源共享,只需为您的 Web 服务设置 CORS http 标头。

Access-Control-Allow-Origin: http://clientsite.com http://client.website.com

同源策略依赖于文档来源,因此提供 JavaScript 库将无济于事。

于 2012-07-26T17:27:21.717 回答
0

两种可能:

  • 让您的 javascript 库创建一个指向您的服务器的 iframe。通过适用于您所使用浏览器的最佳跨页通信,在该 iframe 中运行的代码与第 3 方站点之间进行通信。Google 的 Closure 库有一个名为CrossPageChannel的类,可以很好地解决这个问题。将大部分逻辑放在 iframe 中。这可能很好,因为它会阻止第 3 方站点执行您通过 iframe 边界传递的消息未明确定义的任何事情。

  • 使用JSONP从您的服务器获取数据并将所有逻辑保留在 javascript 库中。

于 2012-07-26T21:30:48.320 回答