Cors错误-尝试向服务器发出POST请求时出现ngrok & express & axios问题

gzjq41n4  于 2022-11-23  发布在  iOS
关注(0)|答案(1)|浏览(968)

我在尝试向服务器发出POST请求时遇到问题。前端和后端都是ngrok托管。
这是POST请求:

export async function createTest(test: any) {
      try {
        const res = await axios.post(
          `${backendDomain}/test`,
           {id: test, name: 'test'},
          {
            headers: {
              'Access-Control-Allow-Origin': '*',
              'Content-Type': 'application/json',
              'Access-Control-Allow-Methods': 'POST',
            },
          }
        )
        const newTest = res.data
        return newTest 
      } catch (error) {
        console.log(error)
      }
    }

这是后端域:https://sd21-23-221-223-216.ngrok.io
后端:

const corsOptions = {
  origin: "https://dz23-12-256-124-663.eu.ngrok.io",
  methods: ['GET', 'PUT', 'POST', 'HEAD', 'DELETE', 'OPTIONS'],
  allowedHeaders: ['Content-Type', 'Authorization', 'Origin', 'Access-Control-Allow-Origin'],
  credentials: true,
}
app.use(cors(corsOptions))

错误:

Access to XMLHttpRequest at 'https://sd21-23-221-223-216.ngrok.io/test' from origin 'https://dz23-12-256-124-663.eu.ngrok.io' has been blocked by CORS policy:

预检响应中的Access-Control-Allow-Headers不允许使用请求标头字段access-Control-allow-methods。
更奇怪的是,我也有GET请求,有时工作,有时不工作。
有什么主意吗?

gc0ot86w

gc0ot86w1#

您需要添加此标头参数ngrok-skip-browser-warning(可为任意值
示例:

$.ajax({
  url: 'https://5120-143-202-253-244.eu.ngrok.io/api',
  type: 'GET',
  headers: {
    "ngrok-skip-browser-warning":"any"
  },
  success: function (data) {
    console.log(data);
  }
});

相关问题