Blockchain Wallet API в React работает локально с прокси, но не в Heroku. GET запрос отправляет обратно текст / HTML - PullRequest
0 голосов
/ 16 января 2020

Работая с API-интерфейсом кошелька Blockchain, у меня одновременно работают 3 сервера (5000 узлов, 3000 реагирующих, 3001 блокчейн). Основная цель - когда пользователь регистрируется, он запускает запрос на blockchain api для создания новой учетной записи, а затем принимает эту информацию и сохраняет ее у нового пользователя следующим образом.

export const register = ({first_name, last_name, email, password}) => dispatch => {
const config1 = {
headers: {
  "Content-Type": "application/json",
  "Access-Control-Allow-Origin": "*"
}};
axios
.get(
  `/merchant/${process.env.REACT_APP_WALLET_GUID}/accounts/create?${process.env.REACT_APP_WALLET_PASS}&label=${first_name}${last_name}`,
  config1
).then(res => {
  console.log("response 1", res.data);
const config2 = {
    headers: {
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin": "*"
    }
  };
axios
    .get(
      `/merchant/${process.env.REACT_APP_WALLET_GUID}/accounts/?${process.env.REACT_APP_WALLET_PASS}`,
      config2
    ).then(res => {
      const { receiveAddress, extendedPublicKey } = res.data[
        res.data.length - 1
      ];
      console.log("response 2", res.data);
const config = {
        headers: {
          "Content-Type": "application/json"
        }
      };
const body = JSON.stringify({
        first_name,
        last_name,
        email,
        password,
        receiveAddress,
        extendedPublicKey
      });
axios
        .post("/api/users", body, config)

        .then(res =>
          dispatch({
            type: REGISTER_SUCCESS,
            payload: res.data
          })
        )
        .catch(err => {
          dispatch(
            returnErrors(
              err.response.data,
              err.response.status,
              "REGISTER_FAIL"
            )
          );
          dispatch({
            type: REGISTER_FAIL
          });
        });
    });
});};

То есть это вложенный топор ios запрос. Я должен был сделать прокси-файл в клиенте, чтобы иметь возможность обойти ошибку CORS для локального запуска.

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy("/merchant", { target: "http://localhost:3001" }));};

Но когда я пу sh в heroku и пытаюсь зарегистрировать запрос POST отвечает text / html моего индекса. html в моей сборке, которая используется по умолчанию. и не будет регистрировать пользователя, потому что информация из запроса цепочки блоков должна быть добавлена ​​к запросу registerUser, и она не возвращается ни с чем. Если он работает локально, теоретически он должен работать в производстве? Я чувствую, что что-то упустил с одним из моих маршрутов / прокси?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...