Eine Anfrage wird über Angularjs $ http mit JSON-Daten an meine REST-Service gesendet. Wenn die Antwort zurückgegeben wird, benötigt Header können folgend, setzt
Response.ok()
.entity(emp)
.headers.add("Access-Control-Allow-Origin", "*")
.headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.allow("OPTIONS").build();
Aber wenn ich eine Post-Anforderung ohne Daten senden,
$http.post('localhost:8000/employer/register')
es erfolgreich ist. Mit Daten schlägt es fehl.
$http({method: 'post', url:serverUrl, data:{name:'abc'}, headers:{'Content-Type':'application/json'} });
Dies ist meine Ruhe Service
@Path("/register")
public class EmpService{
@Get
@Path("test")
@Produces
public String test(){
return "works";
}
@Post
@Consumes(MediaType.APPLICATION_JSON)
public Response addEmp(Emp emp){
return Response.ok()
.entity(emp)
.headers.add("Access-Control-Allow-Origin", "*")
.headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.allow("OPTIONS").build();
Browser-Konsole ist, wie folgend.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8081/employer/register (Reason: CORS header 'Access-Control-Allow-Origin' missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8081/employer/register (Reason: CORS request failed).
UPDATE: Ich fand, dass der Service nicht aufgerufen, da keine Sys.out.println keine Protokolle gibt. Wer weiß, wo das Problem liegt?
verwirrte Antwort wird zurückgegeben erfordern Kopfzeilen set ???? verwirrend, da die Anfrage mit oder ohne Header gesendet wird –
@WasiqMuhammad. Ich habe die Frage mit den Kopfzeilenwerten aktualisiert. –