第一次调用fetch时,一切正常。在第二次通话中,我得到了错误。它可以在Chrome中正常运行。已连接Polyfill提取。
以下代码在将其上传到服务器之前会转换为ES5。 我隐藏了一些变量。
const url = `Fake url for example`;
function addData(data) {
console.log("Affiche", data);
const randomAffiche = data.data[getRandomInt(data.data)];
const date = randomAffiche.PROPERTY_DATES_VALUE.split('-')[1];
eventImgElem.src = randomAffiche.IMG;
eventTitleElem.innerHTML = randomAffiche.NAME;
eventTitleElem.href = randomAffiche.DETAIL_PAGE_URL;
eventLink.href = randomAffiche.DETAIL_PAGE_URL;
eventDate.innerHTML = getMonth(date);
eventLink.innerHTML = randomAffiche.PROPERTY_VENUE_VALUE;
whereToGoLink.href = '/kudago/';
}
function fetchData(city) {
try {
fetch(url + city) // This fetch is returned data = false. Why?
.then(data => {
data.json()
.then(data => {
console.log("fetchData", data);
addData(data);
})
})
} catch (e) {
console.log(e);
}
}
function getCity() {
const url = "fake url for example";
try {
fetch(url) // This fetch is good
.then(data => {
data.json()
.then(data => {
console.log("getCity", data)
if (data.data) {
fetchData(data.data.name);
} else {
console.log("Error getCity", data);
}
})
})
} catch (e) {
console.log(e);
}
}
getCity();
答案 0 :(得分:0)
这种方法帮助我https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
encodeURIComponent(url)
IE 11无法理解西里尔字母。 这将对那些请求西里尔字母的人有所帮助。