我正在使用 Angular + Django 制作一个简单的博客。我有一个页面,用户可以创建新帖子,编写标题和正文。另外,最后他还可以添加一个文件。
这是 Controller :
$scope.newPost = {};
$scope.addPost = function(){
if ($scope.newPost){
PostListSrv.addPost.add($scope.newPost, function(data) {
if (data) {
console.log('success');
}
}, function(error) {
if (error) {
console.log('error');
}
}
);
} else {
console.log('Error');
}
};
这是我调用服务器的服务:
.....
addPost: $resource('my_url', {
}, {
add: {
method: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
params:{title:'title', text:'text', file: 'file'}
}
}),
....
问题是,如果我尝试添加新帖子,则会收到 400 错误。特别是在“网络”(Firefox) 上的“响应”选项卡中,我有一条红线写道: SyntaxError: JSON.parse: JSON 数据的第 1 行第 1 列处的数据意外结束。我该怎么办?
最佳答案
在发送参数之前,请使用 JSON.stringify()
。
.....
addPost: $resource('my_url', {
}, {
add: {
method: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
params: JSON.stringify({title:'title', text:'text', file: 'file'})
}
}),
....
关于javascript - 使用 Angular 和 Django 发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36915681/