火狐下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 ,再次在火狐下進行提交嘗試,問題解決。

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