Jquery.Ajax не работает с contentType: application / json

0

У меня есть простой запрос ajax. Проблема заключается в типе contentType. Когда я помещаю этот атрибут, материал отправляется, но я не могу получить доступ к серверу. Когда я удаляю его, он получает отправленный штраф (но, по-видимому, не в JSON), и я могу получить к нему доступ. Мне просто интересно, может ли кто-нибудь помочь мне разобраться с проблемой.

$.ajax({

    type: "POST",
    url: _common.Ajax.url,
    data: {
        action: 'faraz'
    },
    contentType: "application/json"
})
    .success(function () {
    alert('success');
})
    .fail(function () {
    alert('failed');
})
    .error(function () {
    alert('errror');
})
Теги:

1 ответ

1
Лучший ответ

jQuery будет форматировать data только по умолчанию для application/x-www-form-urlencoded:

Данные, которые необходимо отправить на сервер. Он преобразуется в строку запроса, если не является уже строкой. [...]

Если требуется другой contentType, вам также необходимо форматировать data для соответствия:

// ...
    data: JSON.stringify( { action: 'faraz' } ),
    contentType: "application/json"
// ...

Примечание. Для поддержки ECMAScript 3, IE8 и т.д. Вы можете включить полифонию, например json2.js.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню