創新易聯歡迎您!13年專注深圳網站建設

網站制作中遇到的post跨域請求問題

日期:2017-03-19 | 來源:易聯網站建設公司 | 閱讀:
在項目開發中,遇到一個post跨域請求問題,今天深圳網站建設公司創新易聯的小編就和大家說一說:
使用fetch發送一個請求,并指定請求的方式method 為 POST代碼如下:
var request = new Request(APIList.savePage, { method: 'POST', mode: 'cors', headers: new Headers({ 'Content-Type': 'application/json' }) }); fetch(request) .then(response => response.json()) .then(result =>{ debugger }) }
使用postman調試接口的時候是正常的,但是使用如上代碼發送請求的時候,卻遇到403錯誤,提示請求方式不允許: 這里寫圖片描述
原因及方案
W3C規范中指出,網絡請求分為簡單請求和復雜請求:
簡單請求:get和部分post,post時content-type屬于application/x-www-form-urlencoded,multipart/form-data,text/plain中的一種 復雜請求:簡單請求之外的請求
復雜請求發出之前,就會出現一次options請求。
第一次OPTIONS 空數據請求,為了獲取是否允許跨域,第二次才是帶數據請求。在這種情況下,即便是服務器允許程序跨域訪問,若不支持 options請求,請求也會死掉。
對應的處理方案就是:在服務端添加OPTIONS 請求支持,并做好跨域處理
OPTIONS
OPTIONS請求方法的主要用途有兩個:
1、獲取服務器支持的HTTP請求方法;也是黑客經常使用的方法。
2、用來檢查服務器的性能。例如:Ajax進行跨域請求時的預檢,需要向另外一個域名的資源發送一個HTTP OPTIONS請求頭,用以判斷實際發送的請求是否安全。
—— 微信公眾號 ——

熱門標簽

急速赛车单机版