JavaScript-用post跨域提交数据后如何获得返回的数据呢?

Web程序数据库 Web程序数据库 主题:1214 回复:2505

JavaScript-用post跨域提交数据后如何获得返回的数据呢?

泛泛之交 发布于 2016-12-08 字数 1119 浏览 1009 回复 2

post跨域提交数据可以采用下面的方法:

使用隐藏的iframe来提交表单
1,在页面中嵌入一个iframe,把iframe的宽和高设置为0
2.在iframe的里面里设置一个from的表单,表单的内容就是真正要提交的表单内容。
3.当点击按钮的时候是iframe里的表单提交。

<form id="form2" name="form2" method="post" action="a,jsp" enctype="multipart/form-data">
<input name="option_13412" id="option_13412" type="text"/>
<input name="option_13413" id="option_13413" type="text"/>
<input name="option_13414" id="option_13414" type="text"/>
<input name="option_13415" id="option_13415" type="text"/>
</form>
使用jquery来啊操作iframe中的表单元素
$(window.frames["iframe1"].document).find("#option_13412").val(name);
$(window.frames["iframe1"].document).find("#option_13413").val(phone);
$(window.frames["iframe1"].document).find("#option_13415").val(content);
通过按钮来提交iframe里的表单
$(window.frames["iframe1"].document).find("#form2").submit();

这种方法可以跨域提交数据了,问题是如何获取返回的数据呢?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

灵芸 2017-07-05 2 楼

用ajax的POST提交数据,再获取处理页面的输出,就可以得到数据了
另外,一定要用POST提交吗?
可以用GET方式通过传值的方式提交,远程打开URL,再获取页面返回
例如:test.php?a=xx&b=xx

甜柠檬 2017-03-23 1 楼

你post提交的时候加个隐藏变量一起post到服务器

<input type="hidden" name="returl" id="returl" value="callback.html">

服务器逻辑处理完后,判定returl是否不为空,不为空把需要返回的参数返回,类似这样:
callback.html?param1=1&param2=2.....

然后在你callback.html进行获取就可以了,给你写了个callback.html处理例子:

<script type="text/javascript">

if (location.search.length > 1) {
var paramString = location.search;
var paramsArray = paramString.substr(1,paramString.length).split('&');
var paramsObj = {'retcode' : '', 'retmsg' : ''};
var p;
for (var i = 0; i < paramsArray.length; i++) {
p = paramsArray[i].split('=');
paramsObj[p[0]] = p[1];
}
parent.iframeCallback(paramsObj.retcode, paramsObj.retmsg);
}
</script>