gpt4 book ai didi

reactjs - Axios 请求云客户端 CORS 策略错误

转载 作者:行者123 更新时间:2023-12-04 13:33:25 24 4
gpt4 key购买 nike

我目前正在尝试通过客户端发布到 cloudinary,但出现以下错误:
从源“http://localhost:3000”访问“https://api.cloudinary.com/v1_1/dd5gloppf/add/image/upload”的 XMLHttpRequest 已被 CORS 策略阻止:没有“访问控制允许” -Origin' header 存在于请求的资源上。
我基本上是在尝试发布到 cloudinary 并取回我发布到 api 的图像的 URL,以便我最终可以将其发送到我的服务器并将其存储在我的后端。有谁知道我目前做错了什么?
我不确定如何从客户端处理 CORS 策略错误。我的代码如下:

import React, { useState, useEffect } from 'react'
import axios from 'axios'

function App() {
const [image, setImage] = useState('')
const [loading, setLoading] = useState(false)
const url = 'https://api.cloudinary.com/v1_1/dd5gloppf/add/image/upload'
const preset = 'ml_default'

const onChange = e => {
setImage(e.target.files[0])
}

const onSubmit = async () => {
console.log('im running')
const formData = new FormData()
formData.append('file', image)
formData.append('upload_preset', preset)
try {
setLoading(true)
const res = await axios.post(url, formData, {
'Access-Control-Allow-Origin': '*'
})

console.log(res)
const imageUrl = res.data.secure_url
console.log(imageUrl)
} catch (err) {
console.error(err)
}
}

return (
<>
<div className='file-field input-field'>
<div className='btn'>
<span>Browse</span>
<input type='file' name='image' onChange={onChange} />
</div>
<div className='file-path-wrapper'>
<input className='file-path validate' type='text' />
</div>
<button onClick={onSubmit} className='btn center'>
upload
</button>
</div>
</>
)
}

export default App

最佳答案

上传到 Cloudinary 绝对可以从客户端完成。作为 Cloudinary 背后的开发者 Upload Widget我可以向你保证:)
但是,如果您想要“签名”上传。这意味着一种确保只有“授权”代码可以上传到您的 Cloudinary 帐户的安全方式,您确实需要一个服务器组件,如 here 所述。和 here .
但是,出于演示/开发目的,您可以非常轻松地从浏览器上传到 Cloudinary。
看看这个 sandbox .
*** 编辑
要启用未签名的上传,您需要更改云设置(设置 -> 上传 -> 上传预设)。
enter image description here
然后您将拥有一个未签名的上传预设,其名称将是您在代码中使用的字符串

关于reactjs - Axios 请求云客户端 CORS 策略错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com