Я написал API-интерфейс Jersey2 Java и доступен.Ошибка заголовка 'Access-Control-Allow-Origin'
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@Path("/test")
public class Connect {
//Vars
private Connection conn;
@GET
@Path("/test")
@Produces(MediaType.TEXT_PLAIN)
public String hello(){
return "helloWorld";
}
Когда я ударил это в моем Angular2 приложение, используя ниже код ...
constructor(HttpWebServiceService1: HttpWebServiceService1){
HttpWebServiceService1.getHTTP()
.subscribe(
resBody => this.title = resBody.title,
error => console.error('Error: ' + error),
() => console.log('Completed!')
);
С класса для HTTP ....
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class HttpWebServiceService1 {
constructor(private http: Http) {}
getHTTP() {
return this.http.get('http://localhost:8080/MyApi/test/test').map(
response => response.json());
}
}
Я получаю сообщение об ошибке в браузерная консоль ...
XMLHttpRequest не может загрузить http://localhost:8080/MyApi/test/test. Нет заголовка «Access-Control-Allow-Origin» на запрашиваемом ресурсе .
Помощь!
Обновление: Я импортировал фильтр-фильтр-2.5-SNAPSHOT.jar. Я попытался ввести следующее в свой web.xml, но получил ошибку ... я близок. Я знаю, что есть способ сделать это в Java динамически ...
<!-- CORS Filter Begin -->
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowGenericHttpRequests</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowSubdomains</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, HEAD, POST, PUT, DELETE, OPTIONS</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.maxAge</param-name>
<param-value>3600</param-value>
</init-param>
</filter>
<!-- CORS Filter End -->
<!-- CORS Filter Mappings Begin -->
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- CORS Filter Mappings End -->
thx для вашего ответа, но вам нужно будет уточнить его ... изменить какой url на какой URL-адрес на какой файл и где? – Fearghal