我有一个JS脚本托管在域X上,但嵌入在域Y.我想发送一些数据返回到域X上的页面(可能通过POST)。通过JavaScript提交数据的最简单方法是什么?
我试过寻找解决方案,但我发现的大部分信息都涉及到使用jQuery。是否有可能通过普通的JavaScript来做到这一点?我应该担心跨站点脚本问题吗?
基本上,我尝试了类似于谷歌分析(一个小工具发送数据回家)的东西。我可以处理这些数据,但是我的JavaScript体验非常有限。
我有一个JS脚本托管在域X上,但嵌入在域Y.我想发送一些数据返回到域X上的页面(可能通过POST)。通过JavaScript提交数据的最简单方法是什么?
我试过寻找解决方案,但我发现的大部分信息都涉及到使用jQuery。是否有可能通过普通的JavaScript来做到这一点?我应该担心跨站点脚本问题吗?
基本上,我尝试了类似于谷歌分析(一个小工具发送数据回家)的东西。我可以处理这些数据,但是我的JavaScript体验非常有限。
提交数据最简单的方法是使用form
。您可以创建一个表格,设置action
,method
属性,添加input
s的数据,设置它的值,然后做form.submit()
。为了不将用户重定向到您的网站,您还应该填写具有隐藏iframe名称的target
属性。在这种情况下,表格将被“嵌入”。页面无法重新加载,但您的页面将被加载到iframe中(隐藏)。此方法允许您执行POST请求。
如果您只需要GET请求,事情就更简单了:在JS中创建一个Image
对象,并使用请求的url设置src
字段。我不知道如何交叉浏览器和稳定这个解决方案,但据我记得,它的工作原理。实际上,您可以创建页面并添加其他任何加载其内容的元素(样式,脚本(并在响应评估时放置一些代码))。
关于跨域的东西:
我建议你阅读一些关于JavaScript和HTML表单中的DOM操作的知识,以了解它的机制以及为了模拟JS中的表单提交(基本上我在前两段中描述过)要做些什么。
你想如何发送它? AJAX? – 11684
Google Analytics等系统通过从日志记录服务器获取某些内容(如1x1 GIF),并在查询参数中传递附加数据。服务器记录GET请求。 –
jQuery使用的是简单的Javascript ...让我改述一下:jQuery是平坦的Javascript – Amberlamps