默认 浏览器不支持 跨域访问,就是当前的域名和端口,只能访问 相同域名和端口的 地址页面
如果需要 跨域访问 可以使用 以下 方法 但不局限于这一种方法 还有一种前端代理 ,比较麻烦就不叙述了。
在 .net6 webapi 中的 Program.cs 中添加以下代码
builder.Services.AddCors(
e => e.AddDefaultPolicy(
//WithOrigins() 允许哪些域名可跨域
o => o.WithOrigins(new string[] { "http://127.0.0.1:5500" })
.AllowAnyMethod().AllowAnyHeader().AllowCredentials()
)
);
在 app.Environment.IsDevelopment(){} 后 第一个添加 如下 代码
app.UseCors();
在测试 就不会报 CORS 错误了。
前端测试代码 jquery的post发送 json数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UserLogin</title>
<script src="jquery-3.6.1.js"></script>
<script>
$(function () {
$('#btn').click(function () {
var json = { "UserName": $('#user').val(), "PassWord": $('#pass').val() }
$.ajaxSetup({ contentType: "application/json; charset=utf-8" });
$.post('https://localhost:7004/api/Login/MyLogin', JSON.stringify(json))
});
});
</script>
</head>
<body>
<div>
用户名:<input type="text" name="UserName" id="user">
密码:<input type="text" name="PassWord" id="pass">
<input type="button" value="登录" id="btn">
</div>
</body>
</html>