Javascript 跨域表单提交状态的变相判断

终极至尊粉1326

终极至尊粉1326

2016-02-19 15:53

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐Javascript 跨域表单提交状态的变相判断,无聊中的都看过来。

通过表单在iframe内向一个跨域的url提交的时候,如何判断提交成功了呢?
这个,基本上,很难,因为浏览器安全沙箱的限制,我们没有办法通过获得iframe内部不同域页面的信息。换种思维,如果开始可以获得iframe内部页面信息,那么不能获得的时候,不就说明表单已经提交了么~
百度提供给竞价用户使用的商务中心留言本就是采用此方法。

示例:

test.html:

 程序代码
html
headmeta http-equiv="Content-Type" content="text/html; charset=gb2312"/head
body style="background:#a7a7a7;"
iframe id="testiframe" name="testiframe"/iframe
form method="post" action="http://www.test.com/testaction.asp" target="testiframe" name="testform"
input type="text" name="dddd"input type="submit" value="ddd" name="submitbtn"/
/form
/body
script
document.testform.onsubmit = function () {
    document.testform.submitbtn.disabled = true;
    submitMonitor();

}
function submitMonitor () {
    try{
        var hash = document.getElementById('testiframe').contentWindow.location.hash;
        setTimeout(submitMonitor,100);
    } catch (e) {
        document.getElementById('testiframe').src = "about:blank";
        document.testform.submitbtn.disabled = false;
    }
}
/script
/html

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

testaction.asp

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

 程序代码
%
Function Sleep(n) '单位秒s
Dim StartTime
StartTime = Timer
Do : Loop Until Timern+StartTime
End Function

Sleep(5) '延时5秒

Response.Write Request.Form("dddd")
%

弊端:

这个弊端还很明显,如果是404,403,500等错误,也会误认为是成功提交,不过可以在

 程序代码

setTimeout(submitMonitor,100);

函数前增加客户端表单检查,来尽量避免此问题。

当然,跨域表单提交状态判断也可以用服务器端输出alert脚本来实现。

展开更多 50%)
分享

猜你喜欢

Javascript 跨域表单提交状态的变相判断

Web开发
Javascript 跨域表单提交状态的变相判断

表单提交(插入效果)javascript

Web开发
表单提交(插入效果)javascript

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Ajax异步(请求)提交类 支持跨域

Web开发
Ajax异步(请求)提交类 支持跨域

AJAX javascript的跨域访问执行

Web开发
AJAX javascript的跨域访问执行

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

可实现多表单提交的javascript函数

Web开发
可实现多表单提交的javascript函数

JavaScript实现动态增加文件域表单

Web开发
JavaScript实现动态增加文件域表单

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

另一件是很久很久以前 有一天我遇见了你 - QQ图案分组

另一件是很久很久以前 有一天我遇见了你 - QQ图案分组

JavaScript 弹出层效果

JavaScript 弹出层效果
下拉加载更多内容 ↓