Ответ имеет HTTP-код состояния 500, заголовок «Access-Control-Allow-Origin» отсутствует - PullRequest
0 голосов
/ 10 октября 2018

У меня развернут простой веб-сервис Java (скажем, диагностика).Когда я нажимаю URL (/ диагноз), я получаю вывод JSON.Когда я пытаюсь подключить остальную службу (/ диагностика) через Angular JS, я получаю:

Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе.Происхождение 'http://localhost:4201' поэтому не разрешено.Ответ имеет HTTP-код состояния 500.

Мой код Java:

@GET
@Path("/DiagnosisSortProviderCost")
@Produces(MediaType.APPLICATION_JSON)
public Response DiagnosisSortProviderCost() throws Exception {

    // String path_name = "C:\\Users\\526761\\Desktop\\PioDel\\";
    JSONArray jsonArr = jsonread.json_extract_provider(path_name);

    System.out.println("--");
    System.out.println(jsonArr);

    Response response = Response.status(200).entity(jsonread.pro_DiagProvCost(jsonArr))
            .header("Access-Control-Allow-Origin", "*").build();

    return response;
}

Я добавил код для решения проблемы фильтра CORS, я даже заменил * на IP и порт,И все же я не смог решить проблему.

Пожалуйста, помогите мне !!!

1 Ответ

0 голосов
/ 10 октября 2018
@GET
@Path("/DiagnosisSortProviderCost")
@Produces(MediaType.APPLICATION_JSON)

Потому что ваше отображение никогда не будет работать.Он поддерживает только метод GET, в случае использования другого метода http, такого как OPTIONS (для CORS), он не будет работать.

Все браузеры будут отправлять ОПЦИИ в первую очередь, чтобы определить, какой метод разрешен, перед отправкой собственно запроса.Если OPTIONS не поддерживается или метод http не поддерживается, браузер предотвратит это.

Измените его на @ RequestMaping с параметром метода: методы HTTP-запроса для сопоставления, сужение основного сопоставления: GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.

...