在网址中使用瑞典语字母的fetch()(无法将响应解析为JSON)

时间:2019-10-14 05:48:09

标签: javascript json fetch-api

我有很多关于人的数据,我想对其中的一些进行地理编码(地址->坐标)。我为此使用HERE api,并使用fetch-node从后端进行api调用。

现在的问题是我正在尝试对瑞典的一个城市(称为马尔默)进行地理编码。当我尝试获取

https://geocoder.api.here.com/6.2/geocode.json?app_id=${process.env.HERE_API_ID}&app_code=${process.env.HERE_API_KEY}&searchtext=${terms}

其中terms="Malmo"一切正常,我得到了想要的响应。但是,当我尝试使用terms="Malmö"提取并将其转换为JSON时,我得到一个FetchError的话说Unexpected end of JSON input',

奇怪的是,如果我使用邮递员对相同的url进行GET请求,则一切正常,在浏览器中也是如此。你们知道是什么原因造成的吗?这是我的代码:

get_url(searchTerm) {
        return `https://geocoder.api.here.com/6.2/geocode.json?app_id=${process.env.HERE_API_ID}&app_code=${process.env.HERE_API_KEY}&searchtext=${searchTerm}`;
    }
async search(phrase, callback) {
        let url = this.get_url(phrase);
        console.log(url);
        await fetch(url)
            .then(res => {
                console.log(`Got Response! \n ${res}`);
                return res.json(); // Fails here!
            })
            .then(body => {
                let view = body.Response.View;
                if (view.length > 0) {
                    console.log(`Body: ${view[0].Result[0].Location.Address.Label}`)
                }
            })
            .catch(err => console.error(err));
}

0 个答案:

没有答案