jquery ajax 获取特殊字符(元音变音)
jquery ajax get special characters (umlaute)
我使用包含德语变音符号 (ä,ö,...)
的字符串查询 REST API
item.address = "1,Schönberg,5152,Michaelbeuern";
var url = Geo.url + 'geocode?query=' + item.address;
$.get(url,function(results,status) {
console.log(url);
console.log(results);
}
get函数returns一个空的结果,但是当我在我的浏览器中直接输入console.log(url)
输出时它工作正常URL栏。
(当地址不包含任何变音符号时,ajax 请求有效。这就是为什么我认为这可能是问题所在。)
您需要对您在查询字符串中传递的字符串进行编码。有几种方法可以做到这一点。你可以使用 encodeURIComponent()
:
var url = Geo.url + 'geocode?query=' + encodeURIComponent(item.address);
或者,您可以向 $.get
提供一个对象,jQuery 将为您编码:
$.get(Geo.url + 'geocode', { query: item.address }, function(results, status) {
console.log(results);
});
我个人建议后者。
我使用包含德语变音符号 (ä,ö,...)
的字符串查询 REST APIitem.address = "1,Schönberg,5152,Michaelbeuern";
var url = Geo.url + 'geocode?query=' + item.address;
$.get(url,function(results,status) {
console.log(url);
console.log(results);
}
get函数returns一个空的结果,但是当我在我的浏览器中直接输入console.log(url)
输出时它工作正常URL栏。
(当地址不包含任何变音符号时,ajax 请求有效。这就是为什么我认为这可能是问题所在。)
您需要对您在查询字符串中传递的字符串进行编码。有几种方法可以做到这一点。你可以使用 encodeURIComponent()
:
var url = Geo.url + 'geocode?query=' + encodeURIComponent(item.address);
或者,您可以向 $.get
提供一个对象,jQuery 将为您编码:
$.get(Geo.url + 'geocode', { query: item.address }, function(results, status) {
console.log(results);
});
我个人建议后者。