【问题标题】:415 Unsupported Media Type React Fetch Api415 不支持的媒体类型 React Fetch Api
【发布时间】:2021-07-20 06:35:45
【问题描述】:

当我单击按钮结果是 415 媒体类型错误。当我删除 mode:'no-cors' 我看到 CORS 错误和 405 登录错误,但我可以检查邮递员没有问题的 URL。

结果应该是真或假。 TypeError: 无法在 'Window' 上执行 'fetch': 提供的值 '*cors' 不是 RequestMode 类型的有效枚举值。

const LoginForm = () => {
  const router = useRouter()
  const { t } = useLocalizationContext()
  const [email,setEmail] = useState('');
  const [password,setPassword] = useState('');
  const submit = async (e:SyntheticEvent) => {
    e.preventDefault();

    
    await fetch('url/api/v1/users/login',{
      mode:'no-cors',
      method: 'POST',
      headers:
      {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
       
      },
      credentials:'include',
      body:JSON.stringify({
        email,
        password})
    });}  

【问题讨论】:

  • 删除mode: 'no-cors'
  • 访问从源 'localhost:3000' 获取在 'reqres.in/api/login' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:'Access- 的值当请求的凭据模式为“包含”时,响应中的 Control-Allow-Origin 标头不能是通配符“*”。
  • 添加了配置您的 cors 的答案

标签: javascript reactjs cors fetch-api


【解决方案1】:

CORS 问题仅发生在浏览器中,因为浏览器默认阻止跨域资源共享。此外,使用no-cors 模式有其自身的影响,您需要从here 中了解。相反,我会在后端推荐enabling CORS 并删除“no-cors”模式。另外,请注意,您应该只为您的前端 url 启用 CORS,因此请正确配置它,以减少安全问题。

【讨论】:

  • 我安装了 cors npm i cors,如果 mode:no-cors 415 媒体类型或 mode:cors Cors 错误,我删除了仍然相同的结果
  • 你能分享如何配置cors吗?
  • 你为什么要在请求中设置模式?也请删除它。
  • 当我删除模式结果在这里:imgur.com/fh3IHeY
  • 你用什么技术做api?您需要在 api 上启用 cors,而不仅仅是安装它。您还需要在您的 api 上配置它。
猜你喜欢
  • 2022-01-17
  • 2020-10-06
  • 1970-01-01
  • 2014-05-10
  • 2019-05-01
  • 2017-09-14
  • 1970-01-01
相关资源
最近更新 更多