我正在反应并试图向api发出一个put请求。我试图将我的身体作为内容类型的应用程序/ json发送,但它仍然以text / plain发送。如果我添加标题" Content-Type" :" application / json"我只是把这作为回报。
请求标题字段预检响应中的Access-Control-Allow-Headers不允许使用Content-Type。
我正在使用此API:http://funtranslations.com/api/yoda
这是我的要求:
fetch('http://api.funtranslations.com/translate/yoda.json', {
method: 'PUT',
body: JSON.stringify({
text: this.state.input
})
})
.then(res => {
return console.log(res.json());
})
}
提前感谢您试图帮助我:)
答案 0 :(得分:0)
我认为您发送的内容类型错误。根据{{3}}网站的内容类型应为application/x-www-form-url-encoded
fetch('http://api.funtranslations.com/translate/yoda.json', {
method: 'PUT',
headers: {'Content-Type': 'application/x-www-form-url-encoded', 'Accept': 'application/json'},
body:"text=hadi"
})
.then(res => {
return console.log(res.json());
})
funtranslation清楚地解释了CORS问题
对于跨域请求,将内容类型设置为application / x-www-form-urlencoded,multipart / form-data或text / plain之外的任何类型,都会触发浏览器向服务器发送预检OPTIONS请求
我喜欢这张照片,看看CORS是什么: This address