【发布时间】:2020-12-18 11:18:42
【问题描述】:
我目前正在尝试通过客户端发布到 cloudinary,但出现以下错误:
CORS 策略已阻止从源“http://localhost:3000”访问“https://api.cloudinary.com/v1_1/dd5gloppf/add/image/upload”处的 XMLHttpRequest:无“访问-请求的资源上存在 Control-Allow-Origin 标头。 我基本上是在尝试发布到 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
【问题讨论】:
标签: reactjs cloudinary