Angularjs GET请求编码时CORS dosent工作
我有一个Spring引导应用程序,它提供了一些REST端点 一个是GET-reques端点:“apirl/client/search/{keyword}”。它从数据库中的所有现有客户中筛选出那些在名称、描述、国家等中有该词的客户 前端部分的应用程序使用NodeJS和PrimeReact。 它将使用Angularjs GET请求编码时CORS dosent工作,angularjs,spring-boot,security,cors,Angularjs,Spring Boot,Security,Cors,我有一个Spring引导应用程序,它提供了一些REST端点 一个是GET-reques端点:“apirl/client/search/{keyword}”。它从数据库中的所有现有客户中筛选出那些在名称、描述、国家等中有该词的客户 前端部分的应用程序使用NodeJS和PrimeReact。 它将使用 search = (filter) => { const queryString = filter; if (queryString) {
search = (filter) => {
const queryString = filter;
if (queryString) {
fetch(`${API_URL}/client/search/${queryString}`)
我发现了一个小错误:如果我用包含“/”的单词搜索,它将失败,因为调用将尝试“search/word/afterlash”,并用“404notfound”进行响应。
现在我将对这个词进行编码
let encodedQuery = encodeURIcomponent(query);
现在,任何特殊的单词都被编码,但CORS文件管理器对“C/C++”之类的单词都会失败,但对“C++”却有效。上面写着“不”
“访问控制允许来源”响应中存在
但是在我的Java服务器中
response.setHeader("Access-Control-Allow-Origin", "*");
任何其他API都可以很好地工作。您不应该对url部分进行编码。。。您必须将queryString转换为请求参数(并对其进行编码)
您不应该对url部分进行编码。。。您必须将queryString转换为请求参数(并对其进行编码)
哇,非常感谢。我差点忘了你可以通过search/USA或search?country=USA呼叫。我现在无法测试,但我非常确定这会起作用!谢谢你,如果还有其他问题,muchI会回到这个问题,当然会接受你的正确答案。哇,非常感谢。我差点忘了你可以通过search/USA或search?country=USA呼叫。我现在无法测试,但我非常确定这会起作用!谢谢你,所以如果还有其他问题,muchI会回到这个问题,当然会接受你的正确答案。
${API_URL}/client/search?query=${encodedQueryString}