昨天在調用一個post方法去請求一個接口時,結果我的谷歌瀏覽器只顯示調用了一次,並且請求方法變成GET了,如下圖,很神奇呀!!!很困惑,同樣的POST請求方法,換成其他的URL去請求確實是POST方法,且能請求成功,我的這個URLpost請求就變成GET了,百思不解(因爲一開始沒有注意到HTTP轉換成HTTPS)。
所以遇到這種情況,檢查一下URL是HTTP還是HTTPS!!!
以下是遇到的情形。
http.post方法
// 提交帶storecode頭接口,POST方法
$postStoreCode(url: string, storeCode: any, params: any): Observable<any> {
return this.http.post(url, params, {
headers: new Headers({
'Cache-Control': 'no-cache',
'Pragma': 'no-cache',
storeCode: storeCode
})
}).map((res: Response) => {
let result = res.json();
return result;
});
}
接口調用
一開始的URL是HTTP
// 模板保存接口請求,調用的$postStoreCode方法
public tplServicehx(){
let url = `http://xxxxx.com/cmt2-dcis-dealer/pc/dcisRemoteService/dcis/appointment/rest/resource/technician/duty/rule`;
this.uploadPicService.$postStoreCode(url, this.storeCode, this.dataList).subscribe(res =>
{
if (res['returnCode'] == "1") {
this._ils.alertOpen(res['returnMessage']);
this.templateInquireFun();
}
}, error => {
this._ils.alertOpen("模板設置失敗,請重試!");
});
}
谷歌瀏覽器控制檯結果
我同事用她的谷歌瀏覽器查看結果,,顯示調用了兩次,第一次是http post請求但是301了,,很快第二次變成https,,get請求了,且報錯400。如下兩張圖:
後來,我把URL變成HTTPS了,,請求就OK了。
301重定向
頁面永久性移走(301重定向)是一種非常重要的“自動轉向”技術。網址重定向最爲可行的一種辦法。當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。
參考文章:https://blog.csdn.net/nakey_xie/article/details/82837413
https://baike.baidu.com/item/301%E9%87%8D%E5%AE%9A%E5%90%91/1135400