Почему мой пост jQuery Ajax-запрос отправляет JSON? - PullRequest
1 голос
/ 19 мая 2011

Я скачал некоторый код и в нем был следующий фрагмент:

 function GetCommentBySessionIDWCF_JSON() {
            varType = "POST";
            varUrl = "service/CommentSessionIDWCFService.svc/GetCommentsByPost";
            varData = '{"SessionID": "' + '123' + '"}';
            varContentType = "application/json; charset=utf-8";
            varDataType = "json";
            varProcessData = true;

            //now to do the clever stuff
            $.ajax({
                type: varType, //GET or POST or PUT or DELETE verb
                url: varUrl, // Location of the service
                data: varData, //Data sent to server
                contentType: varContentType, // content type sent to server
                dataType: varDataType, //Expected data format from server
                processdata: varProcessData, //True or False
                success: function (data) {//On Successfull service call

                    $.each(data.GetCommentsByPostResult, function (e) {
                        alert(e.CommentText);
                    });

                },
                error: ServiceFailed// When Service call fails
            });

Что мне интересно, почему я должен отправить JSON с этим постом? Я прочитал документацию jQuery и там написано:

"Данные для отправки на сервер. Они преобразуются в строку запроса, если это еще не строка. Она добавляется в URL для GET-запросов. См. Параметр processData, чтобы предотвратить автоматическую обработку. Объект должен быть парами ключ / значение. Если значение является массивом, jQuery сериализует несколько значений с одним и тем же ключом на основе значения традиционной настройки (описанной ниже). "

Но когда я изменил JSON в 'data' на строку, я получаю ошибку 400. почему?

1 Ответ

1 голос
/ 19 мая 2011

Это не JSON, это объект, содержащий пары ключ / значение, которые отображаются в HTTP ?param=value для отправки на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...