1

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

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

基本上,我试图拥有类似于谷歌分析的东西(一个小部件将数据发送回家)。我可以处理数据,但我的 JavaScript 经验非常有限。

4

1 回答 1

2

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

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

关于跨域的东西:

  • 如果是 GET 请求,您可以发送和接收信息。
  • 在 POST 请求的情况下,没有(就我而言)获得响应的方法。

我建议您阅读一些有关 JavaScript 和 HTML 表单中的 DOM 操作的内容,以了解它的机制以及在 JS 中模拟表单提交的方法(基本上我在前两段中描述了它)。

于 2012-12-19T15:44:38.347 回答