我正在开发基于网络的工具,简化我在办公室工作.我们的合作伙伴向我们提供的工具具有我们整个楼层使用的通用登录信息,但每30分钟超时一次,这是令人厌烦的,必须全天登录.
过去我做的是在我的工具中创建一个隐藏的iframe,它通过在页面加载时提交一个隐藏的表单来登录,并且每隔30分钟继续提交表单以防止超时.然后,他们可以直接从我的工具(通过另一个可见的表单)向伙伴工具提交搜索.
我想使用jQuery $.post()来摆脱隐藏的iframe,并使它成为唯一一次提交登录信息是在搜索完成时.这样就不会在不使用时不断发送请求,但是您仍然可以运行搜索,而不用担心登录超时.
似乎ajax同样的起源政策正在阻止这一点,所以目前我只是打开一个新的命名窗口,然后一个接一个地在目标窗口中提交两个隐藏的表单.
这样做的问题是如果登录请求尚未完成,则搜索请求不会通过,并且它们再次被带到登录页面.如果他们关闭窗口并重新搜索,它将会工作,但这也是烦人的,只是不如原来的情况那么多.
所以除了事实上,你实际上必须看到页面打开(除非它是一个隐藏的iframe)通过$.post()提交参数和使用POST方法提交表单有什么区别?他们看起来是相同的在firebug.有什么办法可以在表单提交时设置回调,所以等待第一个请求在开始第二个请求之前完成?
解决方法
$.post使用xmlhttprequest发送数据. Xhr受到限制.发送直接的HTTP POST请求不是.