鍍金池/ 問(wèn)答/PHP  Linux  HTML/ vue.js寫的前端,接收后端thinkPHP5的驗(yàn)證碼,卻驗(yàn)證不了

vue.js寫的前端,接收后端thinkPHP5的驗(yàn)證碼,卻驗(yàn)證不了

clipboard.png
前端驗(yàn)證碼的位置,我把地址放到formInline.captcha里。

clipboard.png

clipboard.png
這樣加個(gè)隨機(jī)數(shù),是為了可以點(diǎn)擊刷新驗(yàn)證碼。

clipboard.png
后端發(fā)送驗(yàn)證碼圖片的接口

clipboard.png
然后用vue-resource發(fā)送填寫的驗(yàn)證碼。

clipboard.png
這是tp5接收驗(yàn)證碼驗(yàn)證的接口,永遠(yuǎn)返回false。但是我用Postman測(cè)試這個(gè)接口時(shí),是可以正常使用的。
所以猜想是前端調(diào)用的問(wèn)題,找了很久都沒有找到解決的方法...

回答
編輯回答
奧特蛋

因?yàn)闆]有cookie 所以就沒有sessionId,那么自然就找不到驗(yàn)證碼,找不到當(dāng)然就驗(yàn)證不過(guò)關(guān)

2017年2月19日 07:03
編輯回答
蟲児飛

沒有傳cookie吧,調(diào)試很簡(jiǎn)單,前端瀏覽器里header和post參數(shù)和postman里的比對(duì)下,看看哪里不一樣就行了

2017年1月29日 23:45
編輯回答
朕略傻

講講原理吧,不同的用戶進(jìn)網(wǎng)站會(huì)獲取不同的圖片驗(yàn)證碼,服務(wù)器生成模糊圖片加上答案,圖片傳到前端顯示,答案保存在服務(wù)器,用戶通過(guò)圖片得到答案給服務(wù)器驗(yàn)證,那么問(wèn)題來(lái)了,多人有驗(yàn)證需求,服務(wù)器是如何區(qū)分哪個(gè)人的答案對(duì)應(yīng)哪張圖片,所以一般的做法是在前端請(qǐng)求圖片的時(shí)候服務(wù)器生成驗(yàn)證碼在生成驗(yàn)證碼的過(guò)程中設(shè)置session并把答案保存在sission中,服務(wù)器有設(shè)置過(guò)session后會(huì)在響應(yīng)頭都攜帶cookie信息,瀏覽器拿到這個(gè)cookie會(huì)保存起來(lái),其中cookie里面保存的就是sessionid,這是一次前端獲取驗(yàn)證碼圖片的過(guò)程,現(xiàn)在用戶輸入了驗(yàn)證碼提交,要保證提交的鏈接和請(qǐng)求的驗(yàn)證碼的鏈接同源,這樣cookie就是被自動(dòng)給攜帶在請(qǐng)求頭中,提交請(qǐng)求到了服務(wù)器接收后服務(wù)器會(huì)讀取cookie得到sessionid,通過(guò)sessionid得到具體的session信息取到保存的驗(yàn)證碼答案再和用戶提交的對(duì)比就可以了,這是常規(guī)的,有些應(yīng)用不用cookie也是可以實(shí)現(xiàn)的,但必須要手動(dòng)維護(hù)一個(gè)用戶唯一標(biāo)識(shí),原理其實(shí)和cookie一樣,只不過(guò)一個(gè)是瀏覽器自動(dòng)完成一個(gè)是js來(lái)完成,js來(lái)實(shí)現(xiàn)可以解決一些瀏覽器同源策略問(wèn)題,所以這個(gè)問(wèn)題還是得看具體項(xiàng)目,知道原理了,找問(wèn)題應(yīng)該是不難找了吧

2018年4月6日 19:30
編輯回答
別傷我

請(qǐng)問(wèn)下解決了嗎~~~

2018年2月19日 15:26