Я возвращаю строку, которая выглядит следующим образом:Недопустимые символы в JSON.parse (result.responseText);
[{"name":"John","age":"21","gender":"m"}]
, а затем сделать:
JSON.parse(result.responseText);
поместить данные в сеточного управления. Он отлично работает в FF. В IE моя строка выглядит следующим образом:
[{\"name\":\"John\",\"age\":\"21\",\"gender\":\"m\"}]
и слэши не обрабатываются и мой JSON.parse(result.responseText)
не может дать мне неверном символов. Почему у меня разные ответы между браузерами и как я могу исправить эту проблему? Я отправляю полный звонок.
Ext.Ajax.request({
url : 'PersonServlet',
method: 'POST',
params :{'id': id},
success: function (result, request) {
resultData = JSON.parse(result.responseText);
store.removeAll();
store.add(resultData);
},
failure: function (result, request) {
resultData = JSON.parse(result.responseText);
}
});
JSON.parse IE8 не любит разбирать литералы массива, только объекты. Вы можете сделать что-то вроде wrap your array в одном объекте prop: {data: [{"name": "John", "age": "21", "gender": "m"}]} и say resultData = JSON.parse (result.responseText) .data; – dandavis
Я попытался с возвращенными данными вроде этого "{data: [{'name': 'John', 'age': '21', 'gender': 'm'}]}" but resultData = JSON.parse (result .responseText); вызов не работает и дает мне ошибку JSON не указан. – JS11
Мог ли я просто очистить responseText, чтобы заменить обратную косую черту на пустое пространство? Это будет работать, но это хорошее решение? – JS11