Javascript Vue.js获取抛出404和api响应
我无法在Vue.js中发出POST请求。它给了我CORS的问题,但我补充道Javascript Vue.js获取抛出404和api响应,javascript,vue.js,Javascript,Vue.js,我无法在Vue.js中发出POST请求。它给了我CORS的问题,但我补充道 header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); 然后他们就离开了。我可以使用Postman从API获得有效响应,同时使用相同的电子邮件和密码Postman忽略CORS 这是我的取回请求: <script> export defa
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
然后他们就离开了。我可以使用Postman从API获得有效响应,同时使用相同的电子邮件和密码Postman忽略CORS
这是我的取回请求:
<script>
export default {
data () {
return {}
},
methods : {
login : function () {
console.log('Logging in');
// axios({
// method : 'post',
// url : 'https://www.example.com/login',
// headers : {'content' : 'application/json'},
// data : {
// email : 'emailHere',
// password : 'passwordHere'
// }
// })
// .then(function (response) {
// console.log(response);
// })
// .catch(function (error) {
// console.log(error);
// });
fetch('https://www.example.com/login', {
method: 'POST',
body: JSON.stringify({
email : 'emailHere',
password : 'passwordHere'
})
})
.then((res) => res.json())
.then((data) => console.log(data))
.catch((err) => console.error(err))
}
}
}
</script>
https://www.example.com/api/v1/authenticate/login 404 (Not Found)
{status: false, message: "Invalid credentials"}
我尝试了Axios,但仍然给出了404,但不是无效凭据响应
在其他应用程序中,我成功地将jQuerysAjax与相同的API一起使用,因此该API似乎允许javascript请求。但是Fetch和Axios不喜欢它
我有一个Login.vue组件,它有一个按钮
<a id="login-btn" @click.prevent="login">{{ $t('loginPage.loginButtonText') }}</a>
任何帮助都将不胜感激!谢谢 您缺少内容类型标题。尝试在请求中设置标题。Fetch要求您显式设置头,因为它是一个低级API。您的服务器可能会拒绝,因为它无法识别适当的内容类型。试试这个:
fetch('https://www.example.com/login', {
method: 'POST',
// THIS IS IMPORTANT
headers: new Headers({
'Content-Type': 'application/json',
'Accept': 'application/json',
}),
body: JSON.stringify({
email : 'emailHere',
password : 'passwordHere'
})
})
此外,请记住fetch的两件事:
首先使用fetch获取404并不意味着您的请求失败。如果服务器响应4xx或5xx错误,则认为获取成功。只有出现网络错误时,才会拒绝提取。所以,如果您得到404,这意味着请求已到达服务器,但客户端存在问题
第二,尝试将模式设置为cors。虽然mode的默认值是cors。谢谢您的回复!我分别和一起尝试了,给出了不同的响应,但仍然是404。它按预期工作,并返回一个带有数据的响应。$。ajax{url:,键入:'post',数据:{email:'emailHere',密码:'passwordHere'},成功:functionresult{console.logresult;};这是你建议的答复。加载失败:飞行前响应的HTTP状态代码404无效。TypeError:提取失败。@BrianBarton,这很奇怪。需要想想为什么会发生这种情况。还有其他想法吗?