I want to add new comment to wordpress’s post in WP-API using angular js. And this is my function to do that:
WPService.setComment = function(comment) {
var data = [
{
'author_email' : comment.email,
'author_name' : comment.name,
'author_url' : comment.url,
'content' : comment.body,
'post' : comment.post
}
];
return $http.post('wp-json/wp/v2/comments', data[0]).success(function(res, status, header) {
console.log('comment posted...!');
}).error(function(err) {
console.error(err);
});
}
But it doesn’t work properly. How can I add new comment in this way?
UPD #1 It seems angular can’t enter to error block and return errors before that. These are errors:
SyntaxError: Unexpected token <
at Object.parse (native)
at fromJson (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:1271:14)
at defaultHttpResponseTransform (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:9460:16)
at http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:9551:12
at forEach (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:340:20)
at transformData (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:9550:3)
at transformResponse (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:10319:21)
at processQueue (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:14792:28)
at http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:14808:27
at Scope.$eval (http://localhost/wordpress/wp-content/themes/theme1/bower_components/angular/angular.js?ver=4.4.2:16052:28)
Due to WP-API’s github issues page, This was a bug which will be resolve in version 2.0 beta 13.
For temporary solution before next beta release we can apply the 80dcacf commit on
class-wp-rest-comments-controller.php
file of the plugin.