2016-04-16 11 views
2

Ich versuche, einen Kommentar zu meinem WordPress Blog mit WP-REST API v2 und AngularJS http. Bei GET-Anfragen funktioniert alles einwandfrei.

Wenn ich die POST-Anfrage auf diese Weise (Hinzufügen der Parameter zur URL) verwenden, funktioniert alles ordnungsgemäß und der Kommentar wird mit den Daten hinzugefügt.

$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); 
}); 

Aber wenn ich es auf diese Weise zu verwenden, mit dem „Daten“ Parameter für $ http.get (entsprechend der Dokumentation), wird der Kommentar zu Wordpress hinzugefügt, aber es ist leer. Ohne Inhalt oder Name.

$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); 
}); 

Warum funktioniert es nicht auf die zweite Art? Oder sollte ich es mit den Parametern tun, die an die URL abgefragt werden?

Grüße.

Antwort

3

Ich löste es. Ich musste den application/x-www-form-urlencoded Content-Type verwenden und Angulars $httpParamSerializerJQLike auf den Daten verwenden.

$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); 
}); 
Verwandte Themen