我正在尝试构建一个本机应用程序,但似乎无法登录。尝试时得到一个
“注册错误-错误”消息。
我认为我的API无法正常工作,当我在邮递员上尝试时,我得到了
404消息。
URL应该很好,所以我不确定它是否与API后端中的设置有关,或者我是否以某种方式修改了参数。
这是我的api.js代码:
//const BASE_URL = "http://{ip address}:5000";
const BASE_URL = 'https://neighbor-hood.herokuapp.com';
export const api = async (url, method, body = null, headers = {}) => {
try {
const endPoint = BASE_URL.concat(url);
const reqBody = body ? JSON.stringify(body) : null;
const fetchParams = {method, headers};
if((method === "POST" || method === "PUT") && !reqBody) {
throw new Error("Request body required");
}
if(reqBody) {
fetchParams.headers["Content-type"] = "application/json";
fetchParams.body = reqBody;
}
const fetchResponse = await fetch(endPoint, fetchParams);
let text = ''
try{
console.log("fetchResponse ", fetchResponse)
text = await fetchResponse.text()
} catch (err){
console.log("Exception in turning text from response err", err)
}
return fetchResponse;
} catch (e) {
console.log("Exception ", e)
return e;
}
}
这是导入api的我的actions.js文件:
import {api} from "../service/api";
export const createNewUser = (payload) => {
return async (dispatch) => {
try {
dispatch({
type: "CREATE_USER_LOADING"
});
const response = await api("/user/create", "POST", payload);
if(response.success) {
dispatch({
type: "CREAT_USER_SUCCESS"
});
dispatch({
type: "AUTH_USER_SUCCESS",
token: response.token
});
dispatch({
type: "GET_USER_SUCCESS",
payload: response.responseBody
});
return response;
} else {
throw response;
}
} catch (error) {
dispatch({
type: "CREAT_USER_FAIL",
payload: error.responseBody
});
return error;
}
}
}
export const loginUser = (payload) => {
return async (dispatch) => {
try {
dispatch({
type: "LOGIN_USER_LOADING"
});
const response = await api("/user/login", "POST", payload);
if(response.success) {
dispatch({
type: "LOGIN_USER_SUCCESS",
});
dispatch({
type: "AUTH_USER_SUCCESS",
token: response.token
});
dispatch({
type: "GET_USER_SUCCESS",
payload: response.responseBody
});
return response;
} else {
throw response;
}
} catch (error) {
dispatch({
type: "LOGIN_USER_FAIL",
payload: error.responseBody
});
return error;
}
}
}
export const logoutUser = () => {
return async (dispatch, getState) => {
const state = getState();
try {
const {authReducer: {authData: {token}}} = state;
console.log(token);
const response = await api("/user/logout", "DELETE", payload);
console.log(response);
dispatch({
type: "USER_LOGGED_OUT_SUCCESS"
});
} catch (e) {
console.log(e);
}
}
}
这就是我在控制台中看到的内容:
fetchResponse Response {
"_bodyBlob": Blob {
"_data": Object {
"blobId": "DC45F3C7-FB3E-4120-8B92-0AC798181824",
"name": "create.html",
"offset": 0,
"size": 232,
"type": "text/html",
},
},
"_bodyInit": Blob {
"_data": Object {
"blobId": "DC45F3C7-FB3E-4120-8B92-0AC798181824",
"name": "create.html",
"offset": 0,
"size": 232,
"type": "text/html",
},
},
"headers": Headers {
"map": Object {
"connection": "keep-alive",
"content-length": "232",
"content-type": "text/html",
"date": "Thu, 03 Oct 2019 18:15:10 GMT",
"server": "gunicorn/19.9.0",
"via": "1.1 vegur",
},
},
"ok": false,
"status": 404,
"statusText": undefined,
"type": "default",
"url": "https://neighbor-hood.herokuapp.com/user/create",
}
Object {
"isError": true,
"isLoading": false,
"isSuccess": false,
}
答案 0 :(得分:0)
我认为我的API无法正常工作,当我在邮递员上尝试时,会收到404消息。
这说明您有一些后端错误,因为即使在尝试邮递员时,也会得到error of 404
,这是来自后端的错误。