Я оглянулся вокруг, и я пытаюсь найти элегантное решение для этого, и я еще не нашел его. У меня есть веб-сервис ASMX в .NET, который я пытаюсь вызвать, для которого требуются параметры.
Я использую jQuery на стороне клиента для вызова службы, и мой код jQuery выглядит примерно так:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/Reviews/HotelReview.asmx/SubmitReview",
data: "{'name': '" + name + "', " +
"'info': '" info + "'}",
processData: true,
beforeSend: function() { startSubmit(); },
complete: function() { submitComplete(); },
error: function(xhr) { submitError(xhr); },
success: function(msg) { submitSuccess(msg.d); }
});
Работает очень хорошо, за исключением случаев, когда name или info содержат символ ', заключенный в одинарную кавычку. Достаточно просто, потому что мой JSON определяет конец значения поля и представляет собой одинарную кавычку. Когда любое из этих полей содержит одну кавычку, я получаю только «Внутреннюю ошибку сервера», но дальнейшая проверка с использованием Fiddler показала мне результаты (я не буду их публиковать), указывающие на одинарную кавычку выпуск.
Я временно ввел что-то на место, чтобы убрать одинарные кавычки на стороне клиента и вернуть их обратно на стороне сервера, но это далеко не элегантно. Есть ли более элегантный способ избежать этих одинарных кавычек, чтобы мой код мог работать?