带有 CORS-anywhere 的 PUT 请求

问题描述

我使用 cors-anywhere 作为各种代理服务器来解决我遇到的一些 cors 问题。我的项目只需要 GET 和 PUT 请求。 cors-anywhere 解决了我所有的 cors 和 GET 问题,但现在使用 PUT 我收到 500 错误。下面是我如何设置我的服务器并发出 PUT 请求:

//setting up server
var host = process.env.HOST || '0.0.0.0';
var cors_proxy = require('cors-anywhere');
cors_proxy.createServer({
    originWhitelist: [],// Allow all origins
    removeHeaders: ['cookie','cookie2']
}).listen(8000,host,function() {
    console.log('Running CORS Anywhere on ' + host + ':' + 8000);
});

//making call
let result = await fetch(`http://localhost:8000/${apiUrl}`,{
   method: 'PUT",mode: 'cors',body: JSON.stringify({"value":"true"})
});
let json = await result.json();
console.log(json);

这里的所有内容都适用于 GET 请求,并在通过我的 TypeScript 和 JavaScript 项目完成时对 PUT 请求给出 500 错误。如果我使用具有相同 URL 的 Postman,则一切正常。对正在发生的事情有什么想法吗?

感谢您的帮助。

解决方法

刚刚发现问题。我没有在 PUT fetch 请求标头中声明内容类型。正确的看起来像这样:

let result = await fetch(`http://localhost:8000/${apiUrl}`,{
   method: 'PUT",mode: 'cors',headers: {
      'Content-Type': 'application/json'
   },body: JSON.stringify({"value":"true"})
});