ajax
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
if (xmlhttp.responseText) {
alert(' 驗證成功')
}
}
}
xmlhttp.open('POST', 'http://localhost:3000/e', true)
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
xmlhttp.send(data)
alert(data.email)
koa2
router.post('/e', async (ctx, next) => {
var name = ctx.request.body.email || '';
ctx.response.set("Access-Control-Allow-Origin", '*');
ctx.response.body = '用戶名或密碼錯誤';
console.log(name);
});
已經(jīng)確定服務(wù)器端正確接受了請求 但是接收到的狀態(tài)碼是404這是什么原因?
我使用Koa2。看了個帖子,發(fā)現(xiàn)Koa默認(rèn)返回狀態(tài)status默認(rèn)是404,前端發(fā)送POST請求的時候,如果不主動改變ctx.body的值,那么打印你API返回的ctx可能是這樣:
"request": {
"method": "POST",
"url": "/api/wkcs/upd",
"header": {
"host": "127.0.0.1:3000",
"connection": "keep-alive",
"content-length": "2",
"accept": "application/json, text/javascript, */*; q=0.01",
"origin": "http://127.0.0.1:3000",
"x-requested-with": "XMLHttpRequest",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36",
"content-type": "application/json",
"referer": "http://127.0.0.1:3000/edit?wkid=59f583d6-a4d8-450d-97c7-657e21853d68",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,ja;q=0.6",
"cookie": "myusername=eyJteXVzZXJuYW1lIjoiYmVhdHMifQ=="
}
},
"response": {
"status": 404,
"message": "Not Found",
"header": {}
},
"app": {
"subdomainOffset": 2,
"proxy": false,
"env": "development"
},
"originalUrl": "/api/wkcs/upd",
"req": "<original node req>",
"res": "<original node res>",
"socket": "<original node socket>"
注意看response,如果你不對ctx中的參數(shù)做任何更改,response始終會是Koa默認(rèn)的404 —— 即便你的后臺邏輯一切正常!
如果像那位答主說的,將ctx.body改寫一下body的話,此處response返回值就是正常的200。
總結(jié)一下:
一、如果瀏覽器直接報404,基本上是你的URL沒寫對,或是POST參數(shù)配錯了。
二、如果瀏覽器沒有報錯,只是你查看后臺發(fā)現(xiàn)response返回404,那么你后臺API邏輯可能仍可以正常運行,只是因為沒有操作Koa的ctx.body,修改其默認(rèn)的status。此時,你POST提交的data會被封裝進ctx.request.body.你的數(shù)據(jù)字段名里,后臺可以讀取,正常完成你的業(yè)務(wù)邏輯。
如果還有問題,拿IDE給后臺加斷點,看看能否讀到ctx.request.body.你的數(shù)據(jù)字段名這里的數(shù)據(jù)吧。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。