我正在尝试在我的Web应用程序中使用响应在后端使用Spring启动来创建登录页面。我正在使用Spring SecurityJDBC身份验证进行登录。我正在尝试将我的JSP页面转换为React。登录在JSP和Spring boo中运行良好。现在我正在尝试使用react创建相同的页面。但是当我使用axios post发布时,我发现错误
CORS 策略已阻止从源“http://localhost:3000”在“http://localhost:8080/onlineshopping/login”处访问 XMLHttpRequest:请求的资源上不存在“访问控制-允许-源”标头。
这是axios Post
export const Login = (username, password) => async dispatch => {
console.log(password)
let params = {
username: username,
password: password
}
const res = await axios.post("http://localhost:8080/onlineshopping/login", {params});
dispatch({
type: Login,
payload: res.data
});
};
安全配置.java
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.jdbcAuthentication()
.usersByUsernameQuery("select email, password, enabled from user_detail where email = ?")
.authoritiesByUsernameQuery("select email, role from user_detail where email = ?")
.dataSource(dataSource)
.passwordEncoder(bCryptPasswordEncoder);
}
Pagecontroller.java
@RestController
@CrossOrigin
public class PageController {
@RequestMapping("/login")
public Map<String, Object> login(
@RequestParam(name = "error", required = false) String error,
@RequestParam(name = "logout", required = false) String logout) {
Map<String, Object> map = new HashMap<String, Object>();
System.out.println("Login");
map.put("title", "Login");
if (error != null) {
map.put("message", "Username and Password is invalid!");
}
if (logout != null) {
map.put("logout", "You have logged out successfully!");
}
return map;
}
}
请告诉我为什么我得到这个错误和如何解决它。
您必须为 API 调用创建代理。
在这里,代理使用url模式来匹配api调用并将它们重定向到相应的服务器。
尝试以下操作:
> < li>
安装http代理中间件
npm install http-proxy-middleware --save
创建 src/setupProxy.js
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(proxy('/api', { target: 'http://localhost:8080/' }));
};
然后运行本地开发服务器
在Spring boot中添加CORS过滤器配置并将内容类型添加到axios中的application/x-WW-form-urlencoded请求后,我的问题解决了。
export const addProjectTask = (username,password, history) => async dispatch => {
axios.post('http://localhost:8080/onlineshopping/login',
Qs.stringify({
username: username,
password: password
}), {
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}})
.then(function (response) {
console.log(response);
history.push("/");
})
.catch(function (error) {
console.log(error);
});
};
您必须将代理地址添加到package.json文件中,例如:
},
"proxy": "http://localhost:8080",
"devDependencies": {
接下来,只需添加localhost后面的所有元素,即。
axios.get("/onlineshopping/login")
我在这里开始失去理智。我的项目在Spring boot和React上运行,我正在尝试实现注销功能。我想让它工作: 用户已登录。 用户单击注销 JWT令牌cookie被删除,用户被重定向到localhost:3000 从反应应用程序(localhost:3000),我想调用Spring Boot服务器(localhost:8080/exit)上的“/out”endpoint。除了我的实现之外,cor
我试图加载一个测试网页(在我的服务器)。页面是: 但是webView没有加载页面。甚至在@-50之后也没有呼叫 此外,从url加载js脚本的所有站点都会出现此问题。包括youtube、fb等。 这里我的设置 布局:
我试着把数据从React.jslocalhostinsert.php文件。当我提交的形式从reactjs它给我错误的控制台错误是: 访问位于“”的XMLHttpRequesthttp://localhost/reactphpdemo/connect.php“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access
我犯了这个错误 无法加载XMLHttpRequesthttp://domain.com/canvas/include/rs-plugin/js/extensions/revolution.extension.video.min.js.飞行前响应中的访问控制允许标头不允许请求标头字段X-Requested-With。 我的php页面顶部有这两行代码,用于加载这个js文件。 但是问题依然存在,我该怎么
我试图获取一个API请求,但它正在返回此错误访问XMLHttpRequest at'https://api.deezer.com/chart'从起源'http://localhost:3000'已被CORS策略阻止:没有'访问-控制-允许-起源'标头存在于请求的资源。 密码
CORS策略阻止从http://localhost:8000/api/product/http://localhost:3000获取数据:请求的资源上不存在访问控制允许来源标头。如果不透明的响应满足您的需求,请将请求的模式设置为no-cors,以在禁用CORS的情况下获取资源。