javascript
  • jquery
  • ajax
  • special-characters
  • 2016-03-08 52 views 1 likes 
    1

    我查询一个REST API使用包含德国umlaute字符串(ä,ö,...)jQuery的阿贾克斯获得特殊字符(umlaute)

    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函数返回一个空的结果,但它工作正常当我在浏览器URL栏中直接输入console.log(url)输出时。

    (AJAX请求时的地址不包含任何umlaute工作。这就是为什么我认为这可能是问题。)

    +1

    尝试'var url = Geo.url +'geocode?query ='+ encodeURIComponent(item.address);' – Tushar

    回答

    1

    你需要你传递的查询字符串的字符串编码。有几种方法可以做到这一点。你可以使用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); 
    }); 
    

    个人而言,我会建议后者。

    相关问题