我得到了一个进行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转换它,但它没有工作
答案 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编码的字符串。