无法获取错误 - 如何在 Polka 中发送 axios 响应?
Failed to fetch Error - How do I send an axios response in Polka?
我尝试按照下面的代码在 Svelte/Sapper 应用程序中获取登录数据,并且我在服务器上的 api 请求中使用 polka 和 axios。
我不明白 axios 调用中的行为。 console.log(JSON.stringify(result.data))
记录了我预期的正确结果。但是客户端的获取请求抛出这个异常:
Error: Failed to fetch
谁能解释我做错了什么?
//client
try {
const res = await fetch("login.json", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({ user: email, passw: password }),
});
let result = await res.json();
if (!res) {
throw new Error(result.error);
}else{
console.log("result: "+JSON.stringify(result));
}
} catch (e) {
error = e.message;
console.log("Error: "+error); //Error: Failed to fetch
}
}
//server
export async function post(req, res) {
const password = sha3_512(req.body.password);
const qs = require('qs');
const data = qs.stringify({ user: req.body.user, password: password })
const config = {
method: 'post',
url: 'https://****login',
httpsAgent: agent,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: data
}
axios(config)
.then(result => {
console.log(JSON.stringify(result.data));//successful response
res.end(JSON.stringify(result.data));
})
.catch(err => res.end(err));
}
在表单元素中添加preventDefault后问题解决
<form on:submit|preventDefault={() => submit()}>
我尝试按照下面的代码在 Svelte/Sapper 应用程序中获取登录数据,并且我在服务器上的 api 请求中使用 polka 和 axios。
我不明白 axios 调用中的行为。 console.log(JSON.stringify(result.data))
记录了我预期的正确结果。但是客户端的获取请求抛出这个异常:
Error: Failed to fetch
谁能解释我做错了什么?
//client
try {
const res = await fetch("login.json", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({ user: email, passw: password }),
});
let result = await res.json();
if (!res) {
throw new Error(result.error);
}else{
console.log("result: "+JSON.stringify(result));
}
} catch (e) {
error = e.message;
console.log("Error: "+error); //Error: Failed to fetch
}
}
//server
export async function post(req, res) {
const password = sha3_512(req.body.password);
const qs = require('qs');
const data = qs.stringify({ user: req.body.user, password: password })
const config = {
method: 'post',
url: 'https://****login',
httpsAgent: agent,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: data
}
axios(config)
.then(result => {
console.log(JSON.stringify(result.data));//successful response
res.end(JSON.stringify(result.data));
})
.catch(err => res.end(err));
}
在表单元素中添加preventDefault后问题解决
<form on:submit|preventDefault={() => submit()}>