在使用POST方式时,从A域向B提交表单,使用jsonp方式无法将结果返回给A域的主页面。只能使用script引用方式,这种get请求有很大局限性。
在非使用POST不可以时候,可以做以下方式解决:
A域主页面在提交前,动态生成一个隐含的iframe,同时准备好接收返回值的页面。
FORM的action为B域的目标页面,target为iframe.
B域的目标页面将返回值作为参为再重定向到A域的接收页面,可是用JS或服务器端直接发送跳转码,构造http://a.com/receive?msg=xxxx;
如果返回值很复杂甚至可以再构造FORM表单自动提交向A域和接受页面,来个反调用。
这样提交后iframe中已经是A域自己的页面,并从参数中获取了B域目标页面的返回值,它就可以任意把返回值返回给原来提交的主页面了。