我需要使用 javascript 将数据发送到远程服务器。我该怎么做呢?
背景信息: 有一个网页,我使用JS从中提取了一些信息,我需要将其发送回另一台服务器进行处理。响应不是必需的。数据是 XML,我已经对其进行了 URLencode。
如何做到这一点?
编辑
我从中请求数据的服务器与接收数据的服务器不同。只是为了澄清。
我需要使用 javascript 将数据发送到远程服务器。我该怎么做呢?
背景信息: 有一个网页,我使用JS从中提取了一些信息,我需要将其发送回另一台服务器进行处理。响应不是必需的。数据是 XML,我已经对其进行了 URLencode。
如何做到这一点?
编辑
我从中请求数据的服务器与接收数据的服务器不同。只是为了澄清。
最常见的方法之一是 AJAX。以下是使用 jQuery 执行 AJAX 发布请求的方法:
<script type="text/javascript">
$.post('/remote-url', {xml: yourXMLString });
</script>
在服务器端,您可以像处理任何其他 POST 请求一样处理它。如果您使用的是 PHP$xml = $_POST['xml'];
AJAX 的最大限制是您只能向加载文档的同一域发出请求(也称为跨域策略)。有多种方法可以克服此限制,最简单的方法之一是JSONP。
UPD。对于跨域请求,一个非常简单(虽然不是通用)的解决方案是:
(new Image).src = 'http://example.com/save-xml?xml=' + escape(yourXMLString)
这将发出一个 GET 请求(在 Internet Explorer 中不能超过 2KB)。如果您绝对需要 POST 请求或支持更大的请求主体,您可以在您的域上使用中间服务器端脚本,也可以将动态创建的 html 表单发布到 iframe。
查看 Javascript 的 XMLHTTPRequest 方法——或者从 Google 搜索 AJAX 开始。有很多方法可以做到这一点——包括通过 jQuery 等 JS 库的一些非常简单的方法——但更具体的答案需要对您正在使用的特定技术进行更详细的说明。
编辑:您可以设置 AJAX 请求以发布到您自己域上的服务器端脚本(充当代理),并让该脚本转过来并将数据发布到您的远程服务器。