這幾天在開發在線學習平臺的過程,遇到這樣的問題,先看js代碼,很簡單的點擊按鈕,觸發ajax
但是問題是,success裡的回調根本就不執行,百般修改也沒反應。再看php代碼,
到後來已經被我簡化為只有一句echo做為返回值了,但這時依然不執行,這時我意識到,即不是js的問題,也不是php的問題,那麼問題應該定位在協議或數據方面。後來我把js代碼中的data去掉,變成這樣,
現在只有一個單純的post請求而已但即這樣,依然沒有執行success,這時我更加確定,就是http請求頭方面的問題。在網上反覆查找php接收數據時的請求頭方面的資料,終於確定,問題原因是,請求頭的 header 裡的Content-Type的問題。
Content-Type的值有以下幾種,
text/xml (xml 數據格式)
text/html (html 數據格式)
text/plain (無格式字符串數據格式)
multipart/form-data (上傳文件)
application/json (json 數據格式)
application/x-www-form-urlencoded(序列化數據的)
第一種xml格式肯定用不上;第二種html格式也不對;第三種無格式也不對;第四個是上傳表單的,用不上;
估計情況就是第五個、第六個。直接說結果了,(既然$.ajax用不了,那就直接XMLHttpRequest對象)看代碼,
JavaScript代碼:
PHP代碼:
解決了。
這個在線學習平臺說起來簡單,但這一路開發過來,踩進去的坑有很多,就這樣繼續吧,成功的路從來都是曲折的。
最後是廣告時間,如果想要轉行或提高前端技術的同學,可以看一下web前端提高班的課程,
如果覺得本文對你有用,請幫忙轉發,並點讚,謝謝。
覺得有幫助,就讚賞