【发布时间】:2016-03-29 10:53:04
【问题描述】:
我在尝试 POST 数据时遇到问题。我的服务器一直拒绝我的数据(500 服务器错误)。
这是我格式化的方式吗?我在控制台中的 Response Headers 中注意到它显示“Content-Type:text/html”。那应该是 JSON 吗?
在 python 中,这可以正常工作:
requests.post('http://test.net/item/291/', {'uid':21, 'click':1, 'like':1, 'image':0, 'scroll':1, 'clickbuy':0})
我设置了一个中间件文件,其中包括:
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 错误。我注意到在响应标题中它说内容类型是 Text/html
-
好吧,如果没有更多信息,它看起来像是服务器代码的问题,而不是角度问题。尝试设置一个展示问题的小提琴。
-
@Ycon 500 错误意味着在处理请求时引发了 Python 异常。查看运行 Django 开发服务器的终端输出。发生错误时应该有回溯。您可以发布该追溯的粘贴箱吗?
标签: angularjs django http django-cors-headers