火狐下SUBMIT表单覆盖POST请求问题

问题:
火狐下连续发送2个POST请求时第一个请求丢失(第二个POST请求通过提交表单发送)
解决步骤:
1.该问题在CHROME OPERA浏览器均没有出现,而在火狐下出现,说明后端PHP并没有问题,问题定位于前端
2.查看TP后台和打分相关的LOG发现,在CHROME浏览器下,后台有收到前端第一条POST请求,SQL也正确执行,而在火狐下,该POST请求没有出现,对应的SQL也当然没有出现:
CHROME LOG:
[ 2016-06-18T15:37:15+08:00 ] 106.37.236.173 /index.php?m=Home&c=Admin&a=getExerciseLibraryChapterDetails&id=167
INFO: [ app_init ] –START–
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000000s ]
INFO: [ app_init ] –END– [ RunTime:0.000000s ]
INFO: [ app_begin ] –START–
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000000s ]
INFO: [ app_begin ] –END– [ RunTime:0.000000s ]
SQL: SHOW COLUMNS FROM biz_exercise_library [ RunTime:0.0000s ]
SQL: SELECT biz_exercise_library.*,biz_exercise_template.template_name FROM biz_exercise_library INNER JOIN biz_exercise_template on biz_exercise_library.type=biz_exercise_template.id WHERE biz_exercise_library.chapter_id = ‘167’ ORDER BY biz_exercise_library.question_id asc [ RunTime:0.0000s ]

[ 2016-06-18T15:37:38+08:00 ] 106.37.236.173 /index.php?m=Home&c=Teach&a=addScoreDetailsIntoDb
INFO: [ app_init ] –START–
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000000s ]
INFO: [ app_init ] –END– [ RunTime:0.000000s ]
INFO: [ app_begin ] –START–
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000000s ]
INFO: [ app_begin ] –END– [ RunTime:0.000000s ]
SQL: SHOW COLUMNS FROM biz_homework_score_details [ RunTime:0.0000s ]
NOTIC: [2] Illegal offset type in isset or empty D:\XXXXXX\ThinkPHP\Library\Think\Model.class.php 第 511 行.
SQL: DELETE FROM biz_homework_score_details WHERE question_id = 1 AND student_id = 48 AND homework_id = 153 [ RunTime:0.0000s ]
SQL: INSERT INTO biz_homework_score_details (student_id,homework_id,question_id,score,full_score,flag,question_org_id) VALUES (‘48’,’153’,’1’,’4’,’4’,’1’,’740’) [ RunTime:0.0000s ]
NOTIC: [2] Illegal offset type in isset or empty D:\XXXXXX\ThinkPHP\Library\Think\Model.class.php 第 511 行.
SQL: DELETE FROM biz_homework_score_details WHERE question_id = 2 AND student_id = 48 AND homework_id = 153 [ RunTime:0.0000s ]
SQL: INSERT INTO biz_homework_score_details (student_id,homework_id,question_id,score,full_score,flag,question_org_id) VALUES (‘48’,’153’,’2’,’0’,’2’,’2’,’741’) [ RunTime:0.0156s ]

[ 2016-06-18T15:37:43+08:00 ] 106.37.236.173 /index.php?m=Home&c=Teach&a=doGrade
INFO: [ app_init ] –START–
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000000s ]
INFO: [ app_init ] –END– [ RunTime:0.000000s ]
INFO: [ app_begin ] –START–
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000000s ]
INFO: [ app_begin ] –END– [ RunTime:0.000000s ]
SQL: SHOW COLUMNS FROM biz_homework_student_details [ RunTime:0.0000s ]
SQL: UPDATE biz_homework_student_details SET score_details=’{\”s_1\”:\”4\”,\”s_2\”:\”0\”,\”total\”:\”4\”}’,score_at=’1466235463’,status=’2’,points=’4’ WHERE id = ‘166’ [ RunTime:0.0000s ]

FIREFOX LOG:
[ 2016-06-18T15:27:45+08:00 ] 106.37.236.173 /index.php?m=Home&c=Admin&a=getExerciseLibraryChapterDetails&id=167
INFO: [ app_init ] –START–
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000000s ]
INFO: [ app_init ] –END– [ RunTime:0.000000s ]
INFO: [ app_begin ] –START–
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000000s ]
INFO: [ app_begin ] –END– [ RunTime:0.000000s ]
SQL: SHOW COLUMNS FROM biz_exercise_library [ RunTime:0.0000s ]
SQL: SELECT biz_exercise_library.*,biz_exercise_template.template_name FROM biz_exercise_library INNER JOIN biz_exercise_template on biz_exercise_library.type=biz_exercise_template.id WHERE biz_exercise_library.chapter_id = ‘167’ ORDER BY biz_exercise_library.question_id asc [ RunTime:0.0000s ]

[ 2016-06-18T15:28:00+08:00 ] 106.37.236.173 /index.php?m=Home&c=Teach&a=doGrade
INFO: [ app_init ] –START–
INFO: Run Behavior\BuildLiteBehavior [ RunTime:0.000000s ]
INFO: [ app_init ] –END– [ RunTime:0.000000s ]
INFO: [ app_begin ] –START–
INFO: Run Behavior\ReadHtmlCacheBehavior [ RunTime:0.000000s ]
INFO: [ app_begin ] –END– [ RunTime:0.000000s ]
SQL: SHOW COLUMNS FROM biz_homework_student_details [ RunTime:0.0000s ]
SQL: UPDATE biz_homework_student_details SET score_details=’{\”s_1\”:\”4\”,\”s_2\”:\”0\”,\”total\”:\”4\”}’,score_at=’1466234880’,status=’2’,points=’4’ WHERE id = ‘166’ [ RunTime:0.0000s ]
3.基于以上事实,考虑FIREFOX在发AJAX可能有些BUG,于是在百度上搜索 “firefox AJAX 未执行”,发现有一条BLOG文章描述的问题与本问题类似:

这里写图片描述

提交表单时会有两条AJAX请求,第一条由ONSUBMIT函数产生,第二条由SUBMIT本身产生,第一条请求调用了.postSUBMITPOST .post方法改为同步方法,即$.ajax…async:false ,再次在火狐下进行提交尝试,问题解决。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章