jQuery跨域发布到rails网站

时间:2011-03-23 14:13:05

标签: jquery ruby-on-rails forms post cross-domain

我目前正在开发一个小型的rails应用程序,它允许我管理我的个人书签,这些东西与美味符合instapaper并且第一次,我面临跨域表单发布的限制,我'我不确定如何克服。

在浏览任何网站时,我可以按下将jQuery(1.5)和自定义HTML表单注入当前DOM的书签。在填写并提交之前注册的表格后,我会被重定向到我的rails网站,其中会显示成功的确认。

当我尝试通过用Ajax请求替换原始表单工作流来避免重定向时,我的问题就出现了。显然,浏览器正在实施相同的原始政策,限制我将任何数据发布到我的远程网站。

一些开发人员建议我代理请求或开始在iframe中呈现表单。关于代理解决方案,老实说,我对如何使用rails实现这一点没有任何线索。 iframe看起来可行,但我不确定从DOM中访问/工作/更新是多么容易。

提前致谢!

2 个答案:

答案 0 :(得分:1)

使用iFrame方法,您可以使用javascript来获取parent.window(我相信)url。我不确定你有多少DOM访问权限。

你也可以尝试查看jQuery的AJAX方面:Ajax API - jQuery。这将允许您发布到脚本(我相当确定我在几年前使用它跨域)。有了这个,您可以让脚本将代码返回到页面上的表单,而不必重定向。

答案 1 :(得分:1)

不要让iframe工作吓到你。通过以下方式从父母访问很容易:

  • window.frame.frame [0] ... //在此处继续通话,假设目标iframe是页面上的第一个/唯一一帧。

  • window.frame.frameid ... ///在此处继续通话。

或使用jQuery:

  • $(“#iFrame”)。contents()。find(“#someDiv”)//在此处继续通话。