在學習php&mySQL的過程中,前端nuxt用(vue官方推薦的)axios發送post請求,以實現向數據庫插入頁面提交數據的功能。
發現功能是實現了,但數據庫中表的數據是這樣的
很莫名其妙的多出空行,由於是初學者,費了好長時間找是不是自己php連接數據庫的代碼出了什么問題,但並沒有發現疏漏。
於是找回前端,確定axios請求只觸發了一次后,看了下瀏覽器控制台network,發現每次點擊提交都會出現2次請求,對比一下發現第一次請求是這樣的
下邊的login.php才是正常的post請求。那么本着不懂就要問的不要臉精神,去網上找答案:
https://blog.csdn.net/Homer_Simpson/article/details/89188068
寫得很明白,復雜請求,就會自動進行一次預請求,和我們沒關系。那么嘗試解決這個問題:php中做一下判斷
1 if (!$_SERVER['REQUEST_METHOD']=== 'POST') { 2 die('不是post請求忽略'); 3 }
自己是個菜鳥,看php連接數據庫的寫法是這樣的:
就給die()方法也拿過來試一哈,結果不出意料的失敗了。於是接着找:
https://blog.csdn.net/qq_30378229/article/details/78576625
寫得原因是一樣的,但這個給出了解決的代碼:
1 if(strtoupper($_SERVER['REQUEST_METHOD'])== 'OPTIONS'){ 2 echo 'options請求,已忽略。'; 3 exit; 4 }
親測有效,真是感謝兩位素未謀面的朋友。雖然自己加上去的輸出語句並沒有打印出來(笑cry),但數據庫中的數據已經完全正常: