我正在使用Angular + Django做一个简单的博客。当用户可以创建新帖子,写标题和正文时,我有一个页面。另外,最后,他可以添加一个文件。
这是控制器:
$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列的意外数据结束。我该怎么办?
答案 0 :(得分:0)
在发送参数之前,请使用JSON.stringify()
。
.....
addPost: $resource('my_url', {
}, {
add: {
method: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
params: JSON.stringify({title:'title', text:'text', file: 'file'})
}
}),
....
答案 1 :(得分:0)
您可以使用$upload
上传文件
$upload.upload({
url: 'servicesUrl/',
file: fileToBeUpload,
data: {'title': title},
method: 'POST',
withCredentials: false,
contentType:'application/json',
dataType:'json'
});