我有一个Spring Boot应用程序,提供了一些REST端点。
一个是GET请求端点:“ APIURL / client / search / {keyword}”。它会从数据库中所有现有的客户端中过滤那些在其名称-描述-国家等中包含该单词的用户。
前端部分的应用程序正在使用NodeJS和PrimeReact。 它将使用
调用该搜索APIsearch = (filter) => {
const queryString = filter;
if (queryString) {
fetch(`${API_URL}/client/search/${queryString}`)
我发现了一个小错误:如果我搜索的单词中包含“ /”,它将失败,因为该调用将尝试“ search / word / afterSlash”并使用“ 404 Not Found”进行响应。 现在,我将对单词
进行编码let encodedQuery = encodeURIcomponent(query);
现在,所有特殊单词都已编码,但CORS filer对于“ C / C ++”之类的单词失败,但对“ C ++”有效。它说:“不 响应中出现“访问控制允许来源” 但是我的Java服务器中有
response.setHeader("Access-Control-Allow-Origin", "*");
其他任何API都可以正常工作。
答案 0 :(得分:1)
您不应编码url部分……您必须将queryString转换为请求参数(并对其进行编码)
${API_URL}/client/search?query=${encodedQueryString}