【问题标题】:How to send data to remote server using Javascript如何使用 Javascript 向远程服务器发送数据
【发布时间】:2011-06-30 07:05:46
【问题描述】:

我需要使用 javascript 将数据发送到远程服务器。我该怎么做?

背景信息: 有一个网页,我使用JS从中提取了一些信息,我需要将其发送回另一台服务器进行处理。响应不是必需的。数据是 XML,我已经对其进行了 URL 编码。

如何做到这一点?

编辑

我从中请求数据的服务器与接收数据的服务器不同。只是为了澄清。

【问题讨论】:

  • 使用 XMLHttpRequest - 你还需要检查跨域策略吗?
  • 远程服务器上有什么样的端点?它可以通过 HTTP 进行通信吗?
  • 这是什么意思?如果您要问的是,它上面是否有网络服务器,那么是的,它有!
  • javaScript 强制?为什么不是 jQuery?
  • jQuery IS JavaScript...而且 jQuery 在跨域访问方面没有比普通 Ajax 更好的运气

标签: javascript remote-server


【解决方案1】:

执行此操作的最常见方法之一是 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。

【讨论】:

  • 请再次阅读问题。我明确指出,它是一个远程服务器,也就是说,它与加载页面不同。
  • @Janis 请熟悉远程服务器是什么。远程服务器是“不连接到用户键盘但他或她可以在一定程度上控制它的计算机,无论它是在同一个房间、建筑物的另一部分还是世界的另一部分。也称为远程计算机或远程主机”。顺便说一句,我在回答中解决了跨域请求。
  • 我认为 JSONP 会像图像一样工作。既然不需要退货,那图像应该就够了。 +1 更新和 (new Image).src 语法。
【解决方案2】:
  • 使用 POST 提交表单。这适用于所有跨域浏览器。让服务器处理帖子。如果要模拟 AJAX,可以将表单提交到隐藏框架
  • 使用Cross Domain Resource Sharing (MDC) (IE XDR)
  • 使用网络错误(创建图像,将源设置为您想要的 url - 仅限小型 GET 请求)

    var img = new Image();
    img.src="http://www.otherserver.com/getxml?xml="+encodeURIComponent(yourXML); (糟糕,我看到 Lebedev 在他的更新中或多或少做了相同的事情)

  • 使用proxy,即让您的服务器为您与另一台服务器通信

【讨论】:

    【解决方案3】:

    查看 Javascript 的 XMLHTTPRequest 方法——或者从 Google 搜索 AJAX 开始。有很多方法可以做到这一点——包括通过 jQuery 等 JS 库的一些非常简单的方法——但更具体的答案需要你使用的特定技术的更多细节。

    编辑:您可以将 AJAX 请求设置为发布到您自己域上的服务器端脚本(充当代理),然后让该脚本转过来并将数据发布到您的远程服务器。

    【讨论】:

    • 不会有跨服务器问题吗?
    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2017-07-21
    相关资源
    最近更新 更多