Javascript 使用'Fetch``response.json()不断获取错误`
我有一个JavaScript小部件,代码如下:Javascript 使用'Fetch``response.json()不断获取错误`,javascript,fetch-api,Javascript,Fetch Api,我有一个JavaScript小部件,代码如下: function submit(email, pass){ fetch('http://127.0.0.1:8888/api/example', { headers: { "Content-Type": "application/json", "Access-Control-Origin": "*", "X-Requested-With": "XMLHt
function submit(email, pass){
fetch('http://127.0.0.1:8888/api/example', {
headers: {
"Content-Type": "application/json",
"Access-Control-Origin": "*",
"X-Requested-With": "XMLHttpRequest",
},
method: 'post',
body: JSON.stringify({
email: email,
password: pass
})
})
.then(
response => response.json(),///<---always give error
error => console.log('An error occurred.', error)
)
.then(
res => dispatch(completeTransactionsSave(res)
)
})
}
功能提交(电子邮件、通行证){
取('http://127.0.0.1:8888/api/example', {
标题:{
“内容类型”:“应用程序/json”,
“访问控制源”:“*”,
“X-request-With”:“XMLHttpRequest”,
},
方法:“post”,
正文:JSON.stringify({
电邮:电邮,,
密码:pass
})
})
.那么(
response=>response.json(),///console.log('发生错误',错误)
)
.那么(
res=>dispatch(completeTransactionsSave(res)
)
})
}
我不断地犯错误:
未捕获(承诺中)语法错误:JSON输入意外结束
行response.json()
导致错误。我检查了许多教程,所有的教程似乎都使用相同的代码并得到了结果
我如何解决这个问题
重要提示
我刚刚发现这是因为我正在用localhost测试它。在我将其部署到真实服务器的那一刻,一切都正常。
教训是,不要用localhost测试跨源代码。@JaromandaX出于测试目的,我的服务器端只返回一条简单的语句:
return['status'=>'login success']代码>。我从邮递员那里拿回它
没问题:{“状态”:“小部件登录成功”}
。是否有其他方式需要格式化此文件?找到此文件:。公认的答案可能是solution@JaromandaX在网络/响应选项卡中:加载响应数据失败
。让我试试上面那个被接受的答案,看看它是否有效。确保返回的响应类型实际上是application/json。如果是其他问题,例如错误HTML页面,则可能需要使用text()。您可以通过查看开发人员工具中可见的响应标题中的内容类型来查看。错误的教训。我一直在用localhost测试跨源代码的东西。您需要获取localhost服务器代码才能发送正确的头。