Я отправляю запрос POST, содержащий объект JSON, преобразованный в JSON из моего Knockout, наблюдаемого с помощью метода ko.toJSON
. Я отправляю его с помощью Amplify.
Это моя настройка Amplify:
amplify.request.define('addContract', 'ajax', {
url: '/api/contractmanager/contracts/create',
dataType: 'json',
type: 'POST'
});
И это метод в моем dataservise
для добавления данных:
addContract = function (callbacks, data) {
return amplify.request({
resourceId: 'addContract',
data: data,
success: callbacks.success,
error: callbacks.error
});
};
Вот как я на самом деле отправляю запрос:
contracts.addData = function (contractModel, callbacks) {
var contractModelJson = ko.toJSON(contractModel);
return $.Deferred(function (def) {
dataservice.contract.addContract({
success: function (dto) {
if (!dto) {
logger.error('Error saving!');
if (callbacks && callbacks.error) { callbacks.error(); }
def.reject();
return;
}
},
error: function (response) {
logger.error('Error saving!');
if (callbacks && callbacks.error) { callbacks.error(); }
def.reject(response);
return;
}
}, contractModelJson);
}).promise();
};
В качестве серверной части я использую веб-службу RESTful с Jersey.
Проблема в том, что как только я отправляю запрос, я получаю «HTTP-статус 415 - неподдерживаемый тип носителя», а мой сервер GlassFish сообщает: «Сервер отклонил этот запрос, потому что объект запроса находится в формате, не поддерживаемом запрошенным ресурсом для запрошенный метод (неподдерживаемый тип носителя) ".
Нужно ли мне настраивать что-то конкретное, чтобы это работало? Я что-то упускаю?
application/json
? - person condit   schedule 18.03.2013