Axios跨域POST请求参数为什么不能使Object

_usw
  • 2.3k

服务端PHP已经开启了跨域

header('Access-Control-Allow-Origin:*');

前端用Axios发送跨域请求

instance.post("/reward", {...reward}).then((response) => {
      let serverData = response.data
      if (serverData.flag) {
        cb(serverData.ret)
      } else {
        ecb(serverData.error)
      }
    }).catch((error) => {
      console.log(error)
      ecb(error)
    })

所有的其他设置均使用默认

问题:这个请求会触发预检测发送一个OPTIONS请求,恰巧服务端Nginx貌似不支持OPTIONS请求。
但是如果参数是JSON.stringify转化后的字符串,就能够正常跨域。
(手动设置过header的content-type,均无效)

回复
阅读 2k
1 个回答
✓ 已被采纳

恰恰相反,nginx是最容易支持OPTIONS请求的服务器,只需要在配置里添加以下几行就可以了:

location / {
    if ($request_method = OPTIONS ) {
        add_header Content-Length 0;
        add_header Content-Type text/plain;
        return 200;
    }
}
你知道吗?

宣传栏