đọc ở đây về CORS vấn đề của bạn: http://enable-cors.org/
Kiểm tra nếu điều này là một sự giúp đỡ bạn trong getMsg của bạn() phương pháp:
return Response.ok(output).header("Access-Control-Allow-Origin", "*").build();
Nếu ở trên không công việc cố gắng thêm bộ lọc Jersey vào dịch vụ của bạn. Tạo lớp lọc:
package your.package;
public class CORSFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest creq, ContainerResponse cresp) {
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Origin", "*");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Credentials", "true");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS, HEAD");
cresp.getHttpHeaders().putSingle("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");
return cresp;
}
}
và đăng ký sau đó giành chiến thắng web.xml với:
<servlet>
<servlet-name>CORS Filter</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>your.package.CORSFilter</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CORS Filter</servlet-name>
<url-pattern>/webservices/*</url-pattern>
</servlet-mapping>
Một giải pháp khác là sử dụng mã này trong tài nguyên của bạn để cung cấp
OPTIONS
cho trình duyệt. Đặt cái này vào lớp mà bạn có @GET.
@OPTIONS
@Path("/getsample")
public Response getOptions() {
return Response.ok()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "POST, GET, PUT, UPDATE, OPTIONS")
.header("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With").build();
}
Nếu không làm việc này, hãy cố gắng trao đổi
"*"
quy định tiêu đề "-Control-Allow-Origin truy cập" với tên miền tùy chỉnh của bạn, nơi bạn truy cập khu vực này. Ví dụ: Nếu bạn gọi điện thoại này từ số
http://localhost::8080
hãy sử dụng một cái gì đó như thế này
("Access-Control-Allow-Origin", "http://localhost:8080")
thay vì dấu hoa thị
"*"
.
thay đổi này hoạt động trên IE, không hoạt động trên chrome vẫn cùng vấn đề – ChiranjeeviIT
được cập nhật. thử đăng giải pháp số hai. – flyer
sau khi nghiên cứu dài, giải pháp của bạn có vẻ tốt hơn và tốt, cảm ơn bạn đã trả lời, hãy cập nhật cho tôi nếu bạn tìm thấy bất kỳ giải pháp vĩnh viễn nào. – ChiranjeeviIT