У меня есть много данных JSON, которые я должен передать запросу:
$.ajax({
type: "POST",
url: "http://"+HOST+"/users/rankings",
data: "friends="+JSON.stringify(friendsArr),
success: function(response){
$("#rankings").html(response);
}
});
friendsArr является массивом объектов в формате JSON. Проблема - то, что некоторые объекты имеют данные с "+", и это не становится закодированным правильно. Это существует стороны сервера как, "" и данные испорчены. Я должен действительно выполнить итерации через все данные и закодировать каждое значение отдельно? Должен быть более легкий путь.
Я бы попробовал его, используя $.post
метод против сырого $.ajax
, и пусть jQuery обрабатывает работу за вас:
$.post( "http://"+HOST+"/users/rankings",
{ friends: JSON.stringify(friendsArr) },
function(data){
$("#rankings").html(response);
}
);
Кроме того, так как вы можете только POST
через AJAX для адресов на том же домене, почему бы просто не использовать "/пользователи/ранкинги"
в качестве вашего URL против URL. "http://"+HOST+"/users/rankings"
Вы должны быть в состоянии использовать функцию javascript escape
для исправления этой проблемы. Просто экранируйте ваши данные и URL перед отправкой.
Разве это не так просто, как:
$.ajax({
type: "POST",
url: "http://"+HOST+"/users/rankings",
data: "friends="+escape(JSON.stringify(friendsArr)),
success: function(response){
$("#rankings").html(response);
}
});