माई जर्सी CORS अनुरोध POST के लिए काम नहीं कर रहा है, लेकिन जीईटी अनुरोधों के लिए काम करता है। हेडर को जर्सी अनुरोधों में मैप किया जा रहा है जैसा कि एक ही संसाधन के लिए जीईटी अनुरोध के नीचे दिए गए स्क्रीनशॉट में दिखाया गया है। में विफल रहा है पोस्ट अनुरोध पर जर्सी सीओआरएस जीईटी के लिए काम कर रहा है लेकिन पोस्ट नहीं
विवरण::
हालांकि, नीचे दी गई विधि करने के लिए एक पोस्ट कर मुझे XMLHttpRequest cannot load http://production.local/api/workstation. Origin http://workstation.local:81 is not allowed by Access-Control-Allow-Origin.
साथ अंत में आता है यहाँ नेटवर्क गतिविधि का एक स्क्रीनशॉट
यहां मेरा संसाधन है:
@Path("/workstation")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public class WorkstationResource {
@InjectParam
WorkstationService workstationService;
@POST
public WorkstationEntity save (WorkstationEntity workstationEntity) {
workstationService.save(workstationEntity);
return workstationEntity;
}
@GET
@Path("/getAllActive")
public Collection<WorkflowEntity> getActive() {
List<WorkflowEntity> workflowEntities = new ArrayList<WorkflowEntity>();
for(Workflow workflow : Production.getWorkflowList()) {
workflowEntities.add(workflow.getEntity());
}
return workflowEntities;
}
}
मेरे CORS फिल्टर:
public class ResponseCorsFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
Response.ResponseBuilder responseBuilder = Response.fromResponse(response.getResponse());
responseBuilder
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, HEAD");
String reqHead = request.getHeaderValue("Access-Control-Request-Headers");
if(null != reqHead && !reqHead.equals(null)){
responseBuilder.header("Access-Control-Allow-Headers", reqHead);
}
response.setResponse(responseBuilder.build());
return response;
}
}
मेरी मुख्य वर्ग में मेरे जर्सी विन्यास:
//add jersey servlet support
ServletRegistration jerseyServletRegistration = ctx.addServlet("JerseyServlet", new SpringServlet());
jerseyServletRegistration.setInitParameter("com.sun.jersey.config.property.packages", "com.production.resource");
jerseyServletRegistration.setInitParameter("com.sun.jersey.spi.container.ContainerResponseFilters", "com.production.resource.ResponseCorsFilter");
jerseyServletRegistration.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", Boolean.TRUE.toString());
jerseyServletRegistration.setInitParameter("com.sun.jersey.config.feature.DisableWADL", Boolean.TRUE.toString());
jerseyServletRegistration.setLoadOnStartup(1);
jerseyServletRegistration.addMapping("/api/*");
वही मूल नीति? –
@SotiriosDelimanolis - हाँ, और मैंने क्रॉस उत्पत्ति की अनुमति दी है। क्या यह सही तरीके से काम करने की अनुमति नहीं देनी चाहिए? – Webnet
पर्यावरण के बारे में पर्याप्त जानकारी नहीं है, बस उन चीजों को इंगित करें जो दिमाग में आते हैं। शायद आप कुछ याद किया। –