【发布时间】:2017-10-26 19:48:56
【问题描述】:
这就是我的代码的样子
let body = {
authCode: "XXXX",
clientId: "YYYYYY",
clientSecret: "ZZZZZZ"
};
fetch('https://api.myapp.com/oauth/token',{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
mode: 'no-cors',
body: body
}).then(function(response){
console.log("response: ", response);
}).catch(function(error){
console.log("could not get tokens: ", error);
})
我试图通过curl command 做到这一点,这就是它的样子
➜ ~ curl -X POST -H "Content-Type: application/json" -d '{
"authCode": "XXXX",
"clientId": "YYYYY",
"clientSecret": "ZZZZZZZZ"
}' https://api.myapp.com/oauth/token
{"authToken":"e141kjhkwr3432ca9b3d2128385ad91db4cd2:cca6b151-cab4-4de2-81db-9a739a62ae88:23000000"}
我在这里做错了什么?
更新
改成关注后,结果还是HTTP 415
fetch('https://api.myapp.com/oauth/token',{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
mode: 'no-cors',
body: JSON.stringify(body)
}).then(function(response){
console.log("response: ", response);
}).catch(function(error){
console.log("could not get tokens: ", error);
})
有趣的是,我意识到我发送了标题"Content-Type": "application/json",而我返回的是content-type: text/plain,为什么会发生这种情况?
【问题讨论】:
-
你了解
mode: 'no-cors'的作用吗?不是说这是你的问题(问题很可能出在服务器端,我的意思是,为什么它以 415 响应,客户端代码无法真正帮助解决这个问题) - 但mode: no-cors将意味着你的代码将永远无法访问响应 -
JSON.stringify(body) ?
-
进一步@karthick 评论 -
body: Any body that you want to add to your request: this can be a Blob, BufferSource, FormData, URLSearchParams, or USVString object.- 一个对象不是这些 -
谢谢,看看我的更新
标签: javascript reactjs curl fetch fetch-api