我们有一个 ASP.Net 应用程序托管在我们的网络上并暴露给特定的客户端。该客户端希望能够将数据从他们自己的服务器导入我们的应用程序。数据通过 HTTP 请求检索,并采用 CSV 格式。问题是他们不想将他们的服务器暴露给我们的网络并且请求在客户端完成导入(所有客户端都来自与他们的服务器相同的网络)。
所以,需要做的是:
- 他们从我们的服务器请求导入页面
- 页面上的客户端脚本向其服务器发出请求以获取 CSV 格式的数据
- 数据被发送回我们的应用程序
当两台服务器都在同一个域上时,这不是一个挑战:一个简单的隐藏 iframe 或类似的东西就可以解决问题,但我得到的是一个跨域“访问被拒绝”错误。他们还拒绝更改数据格式以返回 JSON 或 XML 格式的数据。
到目前为止,我尝试并学到的是:
- 隐藏的 iframe——“拒绝访问”
- XMLHttpRequest -- 行为取决于浏览器的安全设置:可能有效,在向用户发出安全警告时可能有效,或者可能根本无效
- 动态脚本标签——如果它们能够以 JSON 格式返回数据,它们就会起作用
- IE 客户端数据绑定——同样的“访问被拒绝”错误
在放弃之前我还有什么可以尝试的,并说如果不将他们的服务器暴露给我们的应用程序、更改他们的数据格式或更改他们的浏览器安全设置是不可能的?(顺便说一句,DNS 技巧不是一种选择)。