问题描述
我在https://api.MYCUSTOMDOMAIN.ca
上托管了Heroku上的API,我尝试通过https://www.MYCUSTOMDOMAIN.ca
向其发送axios POST请求,该请求变成了GET请求,并作为OPTIONS请求登录到Heroku中。通过Postman向API发出的POST请求可以正常工作。
我一直在与CORS一起玩耍,认为它可能与预检有关,但是似乎没有做任何事情。
在其他文章中,我也看到了有关由于HTTP到HTTPS重定向而将POST请求更改为GET请求的评论。如果这是可能的原因,我该如何防止丢失数据和更改后的POST发生?
通过https://www.MYCUSTOMDOMAIN.ca
制作的请求标头
来自https://api.MYCUSTOMDOMAIN.ca
的响应标头Heroku应用日志示例
编辑:根据要求,这是我在应用程序入口点中的CORS设置。 https://www.MYCUSTOMDOMAIN.ca
是corsWhitelist
中指定的允许来源之一。
import express from "express";
import cors,{ CorsOptions } from "cors";
const app = express();
const corsWhitelist: string[] = [ /* allowed origins */ ];
const corsOptions: CorsOptions = {
origin: (origin: string | undefined,callback: Function) => {
if(typeof(origin) === "string" && corsWhitelist.indexOf(origin) !== -1) callback(null,true);
else callback(null,false);
},credentials: true,methods: ["GET","POST","PUT","PATCH","DELETE","HEAD","OPTION"],optionsSuccessstatus: 204
};
app.use(cors(corsOptions));
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)