AngularJS $http.post
Ich versuche zu tun, ein $http.post und get die Antwort, ich habe versucht auf verschiedene Weise, aber ich kann Sie nicht arbeiten.
Die Daten sende ich (userData) ist ein json-Objekt.
$http.post(url, userData)
.success(function(data, status, headers, config) {
console.log('post success');
console.log('data');
console.log(data);
console.log('status');
console.log(status);
console.log('headers');
console.log(headers);
console.log('config');
console.log(config);
}).error(function(data, status, headers, config) {
console.log('post error');
console.log('data');
console.log(data);
console.log('status');
console.log(status);
console.log('headers');
console.log(headers);
console.log('config');
console.log(config);
});
Und ich erhalte eine 404-status.
Danke
Bedeutet angeforderte URL nicht existiert. Gib uns mehr Infos, damit wir dir helfen können.
Ich bin sicher, dass die URL existiert. Ich einen falschen Anruf, wie dieser <code> $http({ method: 'POST', url: 'url', data: Benutzerdaten, headers: {'Content-Type': 'application/x-www-form-urlencoded'} }) .success(function(data) { console.log('post-success'); console.log('Daten'); console.log(data); }).error(function(data) { console.log ("post-error"); console.log('Daten'); console.log(data); }); <code> und der Fehler ist verschiedenen ist nicht 404, 415 nicht unterstützter Medientyp korrekt ist, da die userData soll json.
Ohne mehr code kann ich nicht geben Ihnen jede nützliche Hilfe. Entweder die URL ist nicht die Unterstützung der POST-Methode oder einige seltsame Antwort vom server.
Debugging mit firebug habe ich realisiert, dass der Fehler in der Konsole (wenn ich den status anzuzeigen) ist 404, aber in der .Net ist ein weiterer Fehler, 405 Methode Nicht Erlaubt. Bei mir läuft ein server mit nodejs (mit express-und cors -) Aufruf einer externen http-Dienst.
Sie werden wahrscheinlich versuchen, auf ein service über eine POST-Anfrage. Versuchen Sie, ändern Sie $http.post $http.erhalten
Ich bin sicher, dass die URL existiert. Ich einen falschen Anruf, wie dieser <code> $http({ method: 'POST', url: 'url', data: Benutzerdaten, headers: {'Content-Type': 'application/x-www-form-urlencoded'} }) .success(function(data) { console.log('post-success'); console.log('Daten'); console.log(data); }).error(function(data) { console.log ("post-error"); console.log('Daten'); console.log(data); }); <code> und der Fehler ist verschiedenen ist nicht 404, 415 nicht unterstützter Medientyp korrekt ist, da die userData soll json.
Ohne mehr code kann ich nicht geben Ihnen jede nützliche Hilfe. Entweder die URL ist nicht die Unterstützung der POST-Methode oder einige seltsame Antwort vom server.
Debugging mit firebug habe ich realisiert, dass der Fehler in der Konsole (wenn ich den status anzuzeigen) ist 404, aber in der .Net ist ein weiterer Fehler, 405 Methode Nicht Erlaubt. Bei mir läuft ein server mit nodejs (mit express-und cors -) Aufruf einer externen http-Dienst.
Sie werden wahrscheinlich versuchen, auf ein service über eine POST-Anfrage. Versuchen Sie, ändern Sie $http.post $http.erhalten
InformationsquelleAutor agusgambina | 2014-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
"405 Methode nicht erlaubt" Antwort ist, weil Ihr browser ist ein "preflight" OPTIONEN Methode Anforderung über eckig $http und Ihr server unterstützt es nicht. Es gibt eine Reihe von Voraussetzung-Antworten zu aktivieren CORS. Wenn Sie Zugriff auf den server haben, können Sie Unterstützung für diese hinzufügen. Eine Möglichkeit ist die Verwendung von nginx als Frontend-proxy mit dieser Art der Konfiguration:
http://enable-cors.org/server_nginx.html
Lesen der Kommentare-Sie sind wirklich informativ.
Auch: siehe "Preflight Requests" hier: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
InformationsquelleAutor Brian
404 bedeutet, dass die URL, die Sie dem Absenden der Anfrage nicht vorhanden ist.
Wenn Sie ein sub-Verzeichnis wie
mysite.com/angular-site
, und legen Sie die URL hier, um einen relativen Pfad wie "/url/zur/api" - Sie werden zu "mysite.com/url/to/path
" anstelle des richtigen "mysite.com/angular-site/url/to/path
".Achten Sie also auf, dass es das problem sein könnte.
InformationsquelleAutor Shay Friedman