通过JavaScript提交数据的最简单方法是什么?

时间:2012-12-19 15:28:27

标签: javascript

我有一个托管在域X上的JS脚本,但是嵌入在域Y上。我想将一些数据发送回域X上的页面(可能通过POST)。

我尝试搜索解决方案,但我发现的大多数信息都涉及使用jQuery。是否可以通过纯JavaScript执行此操作?我应该担心跨站点脚本问题吗?

基本上,我正在尝试使用与谷歌分析类似的东西(一个小小部件将数据发回国内)。我可以处理数据,但我的JavaScript经验非常有限。

1 个答案:

答案 0 :(得分:2)

提交数据的最简单方法是使用form。您可以创建表单,设置actionmethod属性,为数据添加input,设置值,然后执行form.submit()。为了不将用户重定向到您的网站,您还应该使用隐藏的iframe名称填充target属性。在这种情况下,表格将在“其中”进行汇总。页面无法重新加载,但您的页面将加载到iframe(隐藏)。此方法允许您执行POST请求。

如果您只需要GET请求,事情甚至更简单:在JS中创建一个Image对象,并使用请求的URL设置src字段。我不知道这个解决方案是如何交叉浏览器和稳定的,但据我记得,它是有效的。实际上,您可以创建并添加任何其他元素来加载它的内容(样式,脚本(并将一些代码放在响应中进行评估))。

关于跨域名:

  • 如果是GET请求,您可以发送信息并接收信息。
  • 如果是POST请求,则没有(就我而言)获得响应的方式。

我建议你阅读有关JavaScript和HTML表单中的DOM操作的内容,以了解它的机制以及如何在JS中模拟表单提交(基本上我在前两段中对其进行了描述)。