express - Express Server API 到 Next.js 的 CORS 问题
问题描述
我在我的 localhost 端口 3333 中使用 Express 和 Node.js 设置了用户身份验证服务器,我正在尝试使用 isomorphic-unfetch 连接到 Next.js 端口 3000 中的端点以进行提取。我收到了 CORS 401 错误,我已经做了一些研究,但只是想知道是否可以连接到本地主机上的 Express 服务器?我尝试将 "Access-Control-Allow-Origin": "*", "Content-Type": "multipart/form-data" 添加到标题对象中。快递服务器已经设置了 cors。
下面的这个函数在点击一个按钮时被调用。
onLoginClick = async () => {
let header = new Headers({
"Access-Control-Allow-Origin": "*",
"Content-Type": "multipart/form-data"
});
const res = await fetch("http://localhost:3333", {
method: "POST",
header,
body: JSON.stringify({
username: "USER",
password: "PASSWORD"
})
});
}
错误信息 -
http://localhost:3333/ 401 (Unauthorized)
Response {type: "cors", url: "http://localhost:3333/", redirected: false, status: 401, ok: false, …}
解决方案
首先,CORS 是在服务器端配置的。您将服务器配置为允许来自特定来源的呼叫。
在您的代码中,onLoginClick
是客户端代码,它在浏览器上运行,客户端无法决定服务器应该允许哪个来源,这将破坏拥有 CORS 的目的。
通常您不需要更改 Next.js 应用程序中的 cors 配置,因为您将从托管客户端应用程序的同一源调用 API。
默认情况下,Next.js
API Routes 只支持同源,如果需要自定义,可以使用micro-cors。
推荐阅读
- java - 3D - 使用四元数围绕矢量旋转点
- android - 导航拱组件和碎片娱乐
- python - 在opensv代码中的目录中写入图像
- python - 使用 Python 绘制 Mysql 数据的子图
- python - 熊猫中的DataFrame to_csv 在某些列中引入了字符“。如何避免这种情况?
- c# - 解决asp.net webforms中的cookie重放攻击
- c# - 部署后无法浏览本地目录
- jquery - jquery中的多个条件
- matlab - 如何在 uitabgroup/GUI Matlab 中设置“新标签按钮”?
- php - post__not_in 不排除 Wordpress 搜索查询中的 ID