【发布时间】:2012-02-20 10:55:24
【问题描述】:
我正在开发一种基于网络的工具,以简化我们在办公室的工作。我们的合作伙伴提供给我们的工具有一个通用登录,我们整个楼层都在使用,但它每 30 分钟就会超时,整天都必须重新登录很烦人。
我过去所做的是在我的工具中创建一个隐藏的 iframe,通过在页面加载时提交一个隐藏的表单来登录它,并继续每 30 分钟提交一次表单以防止超时。然后,他们可以直接从我的工具(通过另一个可见的表单)向合作伙伴工具提交搜索。
我想使用 jQuery $.post() 来摆脱隐藏的 iframe,并使其提交登录信息的唯一时间是搜索完成时。这样它就不会在不使用时不断发送请求,但您仍然可以运行搜索,而不必担心登录超时。
似乎 ajax 同源策略正在阻止这种情况,所以目前我只是让它打开一个新的命名窗口,然后在目标窗口中一个接一个地提交两个隐藏的表单。
这样的问题是,如果登录请求没有完成,搜索请求没有通过,它们会再次被带到登录页面。如果他们关闭窗口并再次搜索它会起作用,但这也很烦人,只是没有原来的情况那么多。
所以除了您实际上必须看到页面打开(除非它在隐藏的 iframe 中)这一事实之外,通过$.post() 提交参数和使用 POST 方法提交表单之间有什么区别?它们在萤火虫中看起来相同。有什么办法可以在表单提交时设置回调,以便等待第一个请求完成后再开始第二个请求?
【问题讨论】:
标签: jquery forms post same-origin-policy