我有一个托管在域X上的JS脚本,但是嵌入在域Y上。我想将一些数据发送回域X上的页面(可能通过POST)。
我尝试搜索解决方案,但我发现的大多数信息都涉及使用jQuery。是否可以通过纯JavaScript执行此操作?我应该担心跨站点脚本问题吗?
基本上,我正在尝试使用与谷歌分析类似的东西(一个小小部件将数据发回国内)。我可以处理数据,但我的JavaScript经验非常有限。
答案 0 :(得分:2)
提交数据的最简单方法是使用form
。您可以创建表单,设置action
,method
属性,为数据添加input
,设置值,然后执行form.submit()
。为了不将用户重定向到您的网站,您还应该使用隐藏的iframe名称填充target
属性。在这种情况下,表格将在“其中”进行汇总。页面无法重新加载,但您的页面将加载到iframe(隐藏)。此方法允许您执行POST请求。
如果您只需要GET请求,事情甚至更简单:在JS中创建一个Image
对象,并使用请求的URL设置src
字段。我不知道这个解决方案是如何交叉浏览器和稳定的,但据我记得,它是有效的。实际上,您可以创建并添加任何其他元素来加载它的内容(样式,脚本(并将一些代码放在响应中进行评估))。
关于跨域名:
我建议你阅读有关JavaScript和HTML表单中的DOM操作的内容,以了解它的机制以及如何在JS中模拟表单提交(基本上我在前两段中对其进行了描述)。