2017-04-15 9 views
0

Bitte helfen. Ich kann keinen Treffer auf dem Server-Controller bekommen. Im Browser erscheint jedes Mal der Fehler "404-Not Found". Ich möchte Post-Daten an die Server-Seite übergeben und eine beliebige andere Zeichenfolge vom Server zurückgeben. Hier sind meine Code-Schnipsel: -Angular Ajax POST-Anfrage funktioniert nicht - gibt 404 Fehler

web.xml Servletzuordnung: -

<servlet-mapping> 
    <servlet-name>sdnext</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

MyController.java:-

import....; 

@Controller 

public class MyController { 

    @RequestMapping(value = "/registration", method = RequestMethod.POST) 
    @ResponseBody 
    public String methodStart(@RequestParam (value="UID",required=true) String json){ 
     System.out.println("Data recieved is:-"+json); 
     return "hello"; 
    } 
    } 

Client-Seite Code: -

var params=({ 
      'UID': 'testdata' 
      }); 
$http({ 
      method: 'POST', 
      url: 'http://192.168.1.103:8081/ProjectName/registration.html', 
      headers: { 'Content-Type': 'application/json' }, 
      data:JSON.stringfy(params) 
     }).success(function(data){ 
       console.log("Success Call"); 
      }) 

      .error(function(data, status) { 
       console.log("Error Block"); 
      }) 
+0

Bitte kennzeichnen Sie keine AngularJS-Fragen mit 'eckig'. 'eckig' ist für eckige Version 2 und höher. Vielen Dank –

+0

Sieht für mich aus, dass dieses Problem nichts mit Angular zu tun hat, da es sich um einen Serverfehler handelt. Haben Sie versucht, 'http: //192.168.1.103: 8081/ProjectName/registration.html' direkt von Ihrem Browser auszulösen (z. B. mit Postman)? – yktoo

+0

Ja, ich habe es versucht, aber es funktioniert nur im Falle von GET-Anfrage und nicht POST. Wenn ich den Methodentyp als GET in der Controller-Methode ändere, funktioniert es, aber ich will das nicht, ich möchte, dass die Methode nur POST ist, da ich mehr Daten senden muss –

Antwort

0

Try dies:

  1. ändern value = "/registration" zu, zum Beispiel value = "/user-registration" zu vermeiden Konflikte mit anderen Links
  2. ändern http://192.168.1.103:8081/ProjectName/registration.html-http://192.168.1.103:8081/ProjectName/registration-user, verursachen vielleicht .html Suffix Frühling verwirrt.
  3. Es wird funktionieren, registration-user zurück im Frühjahr zu registration ändern und $http URL zu http://192.168.1.103:8081/ProjectName/registration (ohne .html Suffix). Ich glaube nicht, dass Sie AJAX-Anfragen in web.xml auf diese Weise zuordnen können.