首页 > 解决方案 > MediaWiki API,波兰字符

问题描述

我编写了一些应用程序,它查询 MediaWiki API 的搜索字符串并返回结果。但是,这段代码在尝试将波兰字符放入 URL 字符串时不起作用。

我的 GET 请求函数

function GET(url) {
    var xhr = new XMLHttpRequest(); // a new request
    xhr.open("GET", url, false);
    xhr.setRequestHeader('Content-type', 'application/json; charset=UTF-8')
    try {
        xhr.send(null);
    } catch (e) {
        throw e;
    }
    return xhr.responseText;
}

如果这很重要const resultJSON = JSON.parse(GET(searchUrl));,我稍后会解析响应,这是我的代码停止工作的行。虽然应用程序没有崩溃,但没有响应。没有错误。此外,如果响应包含波兰字符,则它可以正常工作。整个上下文的链接:https ://hastebin.com/eqaxoxorot.js

标签: javascriptapixmlhttprequest

解决方案


尝试在发送请求之前对 url 进行编码,以避免其中包含特殊字符:

const uri = encodeURI('http://zażółćgęsląjaźń.com');
// result: http://za%C5%BC%C3%B3%C5%82%C4%87g%C4%99sl%C4%85ja%C5%BA%C5%84.com

推荐阅读