CORS не работает, когда запрос GET закодирован

У меня есть загрузочное приложение Spring, которое предоставляет некоторые конечные точки REST.

Одним из них является конечная точка запросов GET: «APIURL/client/search/{keyword}». Он отфильтровывает из всех существующих клиентов в БД тех, у кого есть это слово в их имени-описании-стране и т. д.

Приложение для фронтенда использует NodeJS и PrimeReact. Он вызовет этот поисковый API с

search = (filter) => {
        const queryString = filter;
        if (queryString) {
            fetch(`${API_URL}/client/search/${queryString}`)

Я обнаружил небольшую ошибку: если я ищу по слову, содержащему "/", это не удастся, потому что вызов попытается "искать/слово/послеслэш" и ответит "404 не найдено". Сейчас я закодирую слово

let encodedQuery = encodeURIcomponent(query);

Теперь любое специальное слово кодируется, НО файл CORS не работает для таких слов, как «C/C++», но работает для «C++». Там написано "Нет "Access-Control-Allow-Origin" присутствует в ответе" НО на моем Java-сервере у меня есть

  response.setHeader("Access-Control-Allow-Origin", "*");

И любой другой API работает отлично.

Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
0
388
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не должны кодировать части URL... вам нужно преобразовать queryString в параметр запроса (и закодировать его)

${API_URL}/client/search?query=${encodedQueryString}

Вау, большое спасибо. Чуть не забыл, что звонить можно либо по поиску/США, либо по поиску?страна=США. Я не могу проверить это прямо сейчас, но я очень уверен, что это сработает! Большое спасибо

Tufisi Radu 06.03.2019 17:53

Я вернусь к этому вопросу, если возникнут какие-либо проблемы и, конечно же, приму ваш ответ как правильный.

Tufisi Radu 06.03.2019 17:55

Другие вопросы по теме