在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 同一個URL獲取JSON,fetch失敗,axios.get成功,為什么?

同一個URL獲取JSON,fetch失敗,axios.get成功,為什么?

fetch獲取Json數(shù)據(jù)失敗,不設(shè)置mode屬性失敗,設(shè)置mode為"cors","no-cors"也失?。?/p>

fetch('http://www.sojson.com/open/api/weather/json.shtml?city=%E6%88%90%E9%83%BD', {
    method: 'GET',
    mode: 'no-cors'
}).then(response => {
    if (response.ok) {
        return response.json();
    } else {
        throw new Error()
    }
}).then(data => {
    console.log(data);
}).catch(err => {
    console.error('error:'+err);
});

axios獲取Json數(shù)據(jù)成功:

var axios = require('axios');
axios.get('http://www.sojson.com/open/api/weather/json.shtml?city=%E6%88%90%E9%83%BD')
    .then(function (response) {
        console.log(response.data);
    })
    .catch(function (err) {
        console.log(err);
    });

出現(xiàn)這種情況是什么原因?fetch到底該怎么調(diào)用?

回答
編輯回答
熟稔

Axios的fetch是怎么封裝的? 你看看我這個:http://sfau.lt/cH1FDJ
里面有fetch的封裝方法,和你的對比一下

2017年9月13日 10:04
編輯回答
舊酒館

你這個請求跨域了,fetch 對于跨域請求比較嚴(yán)格。

設(shè)置 no-cors 表示該不跨域,這時請求能成功返回,但是不能讀取響應(yīng)體。response.json() 會報錯。

設(shè)置 cors 表示跨域,必須服務(wù)器設(shè)置 Access-Control-Allow-Origin 頭,否則請求不會返回。

所以你設(shè)置 no-cors 和 cors 都不行。

2018年4月16日 17:00