JQuery ajax не работает при передаче IP-адреса в данных с параметрами - PullRequest
0 голосов
/ 25 июня 2018

метод ajax не работает, когда я передаю IP-адрес или любой другой параметр, который имеет какой-то специальный символ.

$.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: '/MyPage.aspx/MyMethod',
                data: '{ name: ' + name + ', Ip:' + ip + '}',
                dataType: 'json',
                success: function (response) {
                    alert(response.d);
                },
                failure: function (response) {
                    alert(response.d);
                }
            });

Существует одно решение путем кодирования ввода в базе 64. Есть ли другой способ?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Как сказал CBroe , вам не следует собирать строку JSON вручную,

Из-за того, что у вашего параметра могут быть специальные символы, я бы посоветовал вам не использовать json для отправкипараметры.

вы можете удалить contentType и изменить данные на {name:name,Ip:ip} для прямой отправки параметров

$.ajax({
        type: "POST",
        //contentType: "application/json; charset=utf-8", //remove it
        url: '/MyPage.aspx/MyMethod',
        data: {name:name,Ip:ip},
        dataType: 'json',
        success: function (response) {
            alert(response.d);
        },
        failure: function (response) {
            alert(response.d);
        }
});
0 голосов
/ 25 июня 2018

Создайте объект и используйте это свойство data запроса AJAX, которое решит вашу проблему:

var dataObj = {
  name: name,
  Ip: ip
};

$.ajax({
  type: "POST",
  contentType: "application/json; charset=utf-8",
  url: '/MyPage.aspx/MyMethod',
  data: dataObj,
  dataType: 'json',
  success: function (response) {
    alert(response.d);
  },
  failure: function (response) {
    alert(response.d);
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...