2016-04-16 2 views
2

Я пытаюсь добавить комментарий к блогу WordPress с WP-REST API v2 и HTTP-адресом AngularJS. С запросами GET все работает правильно.

Если я использую запрос POST таким образом (добавление параметров к URL-адресу), все работает правильно, и комментарий добавляется с данными.

$http({ 
    method: 'POST', 
    url: 'http://myblog.com/json/wp-json/wp/v2/comments?author_name=Myself&content=Hello guys', 
    headers: { 
    'Content-Type': undefined 
    } 
}).then(function (res) { 
    console.info('[REST] POST request sent to "' + route + '"'); 
    d.resolve(res); 
}, function (err) { 
    console.error('[REST] POST request failed. Error message: ', err); 
    d.reject(err); 
}); 

Но если я использую это таким образом, с помощью параметра «данных» за $ http.get (согласно документации), комментарий будет добавлен в WordPress, но он пуст. Без содержимого или имени.

$http({ 
    method: 'POST', 
    url: 'http://myblog.com/json/wp-json/wp/v2/comments', 
    headers: { 
    'Content-Type': undefined 
    }, 
    data: { 
    author_name: 'Myself', 
    content: 'Hello guys' 
    } 
}).then(function (res) { 
    console.info('[REST] POST request sent to "' + route + '"'); 
    d.resolve(res); 
}, function (err) { 
    console.error('[REST] POST request failed. Error message: ', err); 
    d.reject(err); 
}); 

Почему это не работает по-другому? Или я должен делать это с параметрами, указанными в URL-адресе?

С уважением.

ответ

3

Я решил. Я должен был использовать application/x-www-form-urlencoded Content-Type и использовать данные Angular $httpParamSerializerJQLike.

$http({ 
    method: 'POST', 
    url: self.address + route, 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    data: $httpParamSerializerJQLike(params) 
}).then(function (res) { 
    console.info('[REST] POST request sent to "' + route + '"'); 
    d.resolve(res); 
}, function (err) { 
    console.error('[REST] POST request failed. Error message: ', err); 
    d.reject(err); 
}); 
Смежные вопросы