我正在使用 ReactJS 开发 Web 应用程序,我想使用 axios 执行 GET 请求。首先,我尝试使用以下行:
axios.get("http://localhost:8080/MyWebApplication/MyServlet").then(data=>{
//Code
});
但是我得到了以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/WebApplication1/NewServlet. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
后来我尝试加个header来解决问题
axios.get("http://localhost:8080/WebApplication1/NewServlet", {headers:{'Access-Control-Allow-Origin': '*'}}).then(data=>{
//code
});
但问题依然存在。怎么了?
最佳答案
crossDomain 的默认值如下:
同域请求为false,跨域请求为true
如果您正在发出相同域的 json 请求,并且您的站点可能会将请求重定向到另一个域以提供响应(通过 HTTP 3XX),那么您应该将 crossDomain 属性设置为 true,以便您的站点可以读取响应调用脚本。
这为您提供了在发出同源请求时检索 JSON 的优势,以及在发出跨源请求时的 JSONP 功能。如果 CORS 在您重定向到的域上处于事件状态,那么您可以在请求选项中设置 jsonp: false。
axios.get("http://localhost:8080/WebApplication1/NewServlet",{ crossDomain: true }).then(data=>{
//Logic of your code
});
https://stackoverflow.com/questions/50444571/
相关文章:
intellij-idea - IntelliJ IDEA - 在路径中查找被锁定在另一个窗口监视器
ansible - 例如,如何限制 Ansible 的设置模块 (gather_facts) 仅检索
regex - 为什么我不能在 clojure 中的 "|"拆分
wordpress - 使用 AWS RDS 和我自己的数据库哪个最便宜?
python - 使用 bigquery tables GET api 获取表的最后修改日期
java - Spring boot ConditionalOnBean 注解