javascript - 跨域讀取網(wǎng)站接口獲取數(shù)據(jù)遭遇堵截
問(wèn)題描述
今天用webpack的代理模式想要讀取某網(wǎng)站的數(shù)據(jù)接口,來(lái)獲取在線數(shù)據(jù)。結(jié)果返回200,以為成功了。打開(kāi)數(shù)據(jù)一看,code返回500,直接被服務(wù)器判定惡意訪問(wèn)了。想請(qǐng)問(wèn)碰到這種情況,有什么辦法可以不被服務(wù)器判定為惡意訪問(wèn)而獲取到正常數(shù)據(jù)嗎?以下圖一為狀態(tài)碼截圖,圖二為返回的數(shù)據(jù)。
問(wèn)題解答
回答1:今天修改了接口后請(qǐng)求成功了,原因每次請(qǐng)求這個(gè)接口時(shí),都發(fā)發(fā)送若干個(gè)參數(shù)給服務(wù)器,其中一個(gè)是token參數(shù)。我昨天在沒(méi)有仔細(xì)看接口,覺(jué)得接口地址太長(zhǎng)了,就把除了商鋪ID以外的參數(shù)都刪了,把token參數(shù)也刪了。于是就出問(wèn)題了。今天我吧token參數(shù)加上,就可以直接獲取數(shù)據(jù)。不過(guò)奇怪的是,對(duì)方服務(wù)器判定token似乎只要有值即可,并不驗(yàn)證值,所以我吧token參數(shù)的值,改為任何字符都可以通過(guò)。
回答2:首先,data里面的500已經(jīng)是響應(yīng)報(bào)文數(shù)據(jù)里面的內(nèi)容了,這就意味著那個(gè)500是人家程序員給你的500,而不是HTTP的狀態(tài)碼。這個(gè)500在人家那里意味著‘餐單正在維護(hù)。。。。。。’。
如果像你所說(shuō)的,你被人家判定為惡意訪問(wèn)了,那這個(gè)是人家的某種不管是出于跨域請(qǐng)求方面的安全也好還是別的也好的策略,你能怎么辦?只能讓人家把的ip加到他的白名單里面,這樣子成為他信任的訪問(wèn)者,然后給你返回你想要的數(shù)據(jù)。
回答3:先用正常方式抓包。看看請(qǐng)求中都發(fā)了什么信息(host、referer、cookie、ua啥的)。然后你請(qǐng)求的時(shí)候也帶上同樣的內(nèi)容試試。
相關(guān)文章:
1. javascript - 關(guān)于css絕對(duì)定位在ios瀏覽器被橡皮筋遮擋的問(wèn)題2. python - beautifulsoup獲取網(wǎng)頁(yè)內(nèi)容的問(wèn)題3. python - 能通過(guò)CAN控制一部普通的家用轎車(chē)嗎?4. mysql優(yōu)化 - 關(guān)于mysql分區(qū)5. javascript - react input file6. 人工智能 - python 機(jī)器學(xué)習(xí) 醫(yī)療數(shù)據(jù) 怎么學(xué)7. centos7 編譯安裝 Python 3.5.1 失敗8. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處9. html5 - 只用CSS如何實(shí)現(xiàn)input框的寬度隨框里輸入的內(nèi)容長(zhǎng)短自動(dòng)適應(yīng)?10. c++ - 請(qǐng)問(wèn)MySQL_Connection::isReadOnly 怎么解決?
