【发布时间】:2020-06-07 20:56:18
【问题描述】:
我有一个在http://localhost:10080/v1 上运行的 api [我无法更改 api 的代码]。 我已经构建了一个反应应用程序来向该 API 发送一些发布数据。 React 应用在 http://localhost:3000 上运行
handleSubmit(event){
event.preventDefault()
const base_url="http://localhost:10080/v1/"
const data={<<some json data>>}
let headers = new Headers();
headers.append('Content-Type', 'application/json')
fetch(base_url,{
method:'POST',
mode: 'no-cors',
header:headers,
body: JSON.stringify(data),
})
}
当我将 mode 更改为 cors 时,我的跨域请求被阻止。
当我将mode 更改为no-cors 时,我收到415-Unsupported Media Type 错误,因为当我们禁用cors 时,我们无法更改请求标头(在其他答案和文档中给出)。如何克服这个问题并向该 api 发送 post 请求?
【问题讨论】:
-
如果你在 localhost 上运行它为什么不能改变 api 的代码?无论如何,您是否尝试过使用 cors-anywhere cors-anywhere.herokuapp.com
-
api 是我下载的应用程序的一部分,因此无法更改。是的,我已经尝试过它在我的情况下不起作用。
-
用邮递员尝试api是否有效?
-
@SuleymanSah 当我通过 Firefox 访问 api 并且我能够使用浏览器的工具发送发布请求时,它可以工作。所以,它也必须与邮递员一起工作。
标签: javascript reactjs cors fetch cross-origin-read-blocking