reactjs - React 和 PUT Ajax PUT 请求上的 CORS 问题
问题描述
我的应用程序有问题。我使用 Express/node 作为 API 并尝试使用 React 访问它,这与 Axios 配合得很好。
现在我尝试了一个 DevExpress 网格组件来显示数据。获取数据工作正常,但如果我想编辑和保存,我总是会遇到 CORS 错误。
我在快递上的设置:
app.use(
cors({
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
})
);
API 如下所示:
router.put('/dataToEdit', auth, (req, res) => {
MasterData.updateData(req, res);
});
如果我想调用并绑定到网格:
const dataSource = createStore({
key: 'helperboxTypeId',
loadUrl: `${url}/getAlldataToEdit`,
insertUrl: `${url}/dataToEdit`,
updateUrl: `${url}/dataToEdit`,
deleteUrl: `${url}/dataToEdit`,
onBeforeSend: (method, ajaxOptions) => {
ajaxOptions.headers = {
'Content-Type': 'application/json',
'x-auth-token': localStorage.token,
};
ajaxOptions.crossDomain = true;
},
});
我尝试了它,我认为所有可能的设置星座,在我问这个问题之前,我在几个论坛中搜索了大约 1 天 :) 也许有人正在使用相同的组件并且可以以某种方式提供帮助。错误是:
Access to XMLHttpRequest at 'http://localhost:5000/api/masterData/dataToEdit' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
另一种解决方案可能是我在那里使用 Axios 但无法集成它。
提前谢谢了!
解决方案
您应该允许 Access-Control-Allow-Origin 如下:
app.all('/*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
推荐阅读
- javascript - 如何在不改变原始数组的情况下将数组传递给函数?
- android - Xamarin Android 如何正确声明 Intent Filter 以匹配自定义文件类型?
- javascript - Gulp 不是 comile sass 文件并重新加载页面
- mariadb - MySQL Workbench 无法转发工程,错误 1064
- c++ - preLaunch 'C/C++:gcc.exe build active file' 以退出代码 -1 终止
- android - `clearPackageData` 删除生成 JaCoCo 报告所需的文件(.exec 和 .ec):Android
- python - keras CNN 的维度报告“无”
- owasp - OWASP Dependency-Track 实际上在哪里扫描以获取有关项目的数据?
- tensorflow - StyleGAN2-ada,运行时运行,但 epoch 保持为零
- c# - Asp.net web api 控制器在应用程序启动一天后返回 404