У меня возникла проблема при попытке получить данные POST. Мой сервер продолжает отказываться от моих данных (ошибка 500 серверов).
Это так, как я его отформатировал? Я заметил, что в моей консоли в заголовках ответов он говорит «Content-Type: text/html». Должен ли это говорить JSON?
В питона, это работает отлично:
requests.post('http://test.net/item/291/', {'uid':21, 'click':1, 'like':1, 'image':0, 'scroll':1, 'clickbuy':0})
I установка файл промежуточного, который включает в себя:
class CorsMiddleware(object):
def process_response(self, request, response):
response['Access-Control-Allow-Origin'] = '*'
response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, PUT'
return response
Моя AngularJS приложение настроено так:
.factory('cardsApi', ['$http', function ($http) {
var like = JSON.stringify({uid:21, click:1, like:1, image:0, scroll:1, clickbuy:0}));
var postLikes = function (product_id) {
return $http.post('http://test.com/api/item/' + product_id, like);
}
return {
postLikes: postRecordLikes
};
}])
.config(function ($httpProvider) {
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
})
Ошибка (в браузере):
У вашего сервера возникли проблемы с обработкой запроса. Попробуйте удалить бит 'stringify', поэтому' var like = {blah blah blah}; ' –
Вы имели в виду удалить весь JSON.stringify? Я сделал это, все еще получаю 500 ошибок. Я заметил, что в заголовках Response указано, что тип содержимого - это текст/html – Ycon
Ну, без дополнительной информации это выглядит как проблема с кодом сервера, а не угловая. Попробуйте настроить скрипт, который демонстрирует проблему. –