angularjs - url在ajax调用中编码

时间:2016-09-30 12:27:20

标签: javascript angularjs ajax url

我得到了一个进行ajax调用(GET)的服务。

var _getMemeValues = function(category_id, attribute_id) {
    return $http.get('/api/meme_​values?category_id='+category_id +'&​attribute_id='+attribute_id);
};

当我进行该调用时,url会像这样编码。 http://localhost:8080/api/meme_%E2%80%8Bvalues?category_id=MLB1468&%E2%80%8Battribute_id=MLB1234

我该如何解决这个问题?我尝试用toString(),decodeURIComponent转换它,但它没有工作

3 个答案:

答案 0 :(得分:1)



It seems you should refactor the api or services to use the standard format like this:

'/api/meme_category_id/' + category_id + '/​meme_attribute_id/' + attribute_id

or to be more standard:
'/api/category/' + category_id + '/​attribute/' + attribute_id

and then call as usual in angularjs

function getMeme(categoryId, attributeId) {
 return $http.get('http://localhost/api/category/' + categoryId + '/attribute/' + attributeId);
};




答案 1 :(得分:1)

字符串中有一个控制字符(LRM

'/api/meme_​values?category_id='+category_id +'&​attribute_id='
here       ^                         and here ^

即在meme_之后和attribute_id=之前删除它,你就没事了。
这个角色通常来自像ms word这样的编辑。

答案 2 :(得分:0)

encodeURIComponent可能就是你要找的东西:

var someString = "Höe#äe sdfhlen3";
console.log("before: ", someString);
console.log("after : ", encodeURIComponent(someString))

编辑:decodeURIComponent完全相反,尝试解码URI编码的字符串。