2012-12-19 204 views
1

我有一个JS脚本托管在域X上,但嵌入在域Y.我想发送一些数据返回到域X上的页面(可能通过POST)。通过JavaScript提交数据的最简单方法是什么?

我试过寻找解决方案,但我发现的大部分信息都涉及到使用jQuery。是否有可能通过普通的JavaScript来做到这一点?我应该担心跨站点脚本问题吗?

基本上,我尝试了类似于谷歌分析(一个小工具发送数据回家)的东西。我可以处理这些数据,但是我的JavaScript体验非常有限。

+0

你想如何发送它? AJAX? – 11684

+1

Google Analytics等系统通过从日志记录服务器获取某些内容(如1x1 GIF),并在查询参数中传递附加数据。服务器记录GET请求。 –

+2

jQuery使用的是简单的Javascript ...让我改述一下:jQuery是平坦的Javascript – Amberlamps

回答

2

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

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

关于跨域的东西:

  • 在GET请求的情况下,你可以将信息发送和接收它。
  • 在POST请求的情况下,没有(对我来说)获得响应的方式。

我建议你阅读一些关于JavaScript和HTML表单中的DOM操作的知识,以了解它的机制以及为了模拟JS中的表单提交(基本上我在前两段中描述过)要做些什么。

相关问题