javascript - 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
解决方案
尝试在发送请求之前对 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
推荐阅读
- javascript - 如何在 js-full-year 日历中选择范围和添加事件
- json - 从 .Net Core 3.0 中的 API 反序列化 JSON 流,使所有字段为空
- xamarin.forms - 我不能指定 customView 的高度?
- vue.js - 在 vue-cli3 中使用 webpack 从每个页面中分离全局基本样式
- html - 如何从 http://www.websitename.com/index.html 重定向到 http://www.websitename.com/
- utf-8 - 如何在 tclhttpd 中正确计算 Content-length?
- javascript - 用户配置文件不会显示且无法更新:Firebase 和 VueJS
- excel - Excel LOOKUP 匹配错误的单元格
- mysql - 使用 CakePHP 时是否建议向 MySQL 表添加额外的索引
- windows - 为什么我不能使用 cd 在 cmd 中导航到 sd 卡