Как исправить ошибки при передаче объекта из приложенияactjs в приложение весенней загрузки с помощью API POST? - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу отправить объект изactjs (веб-интерфейс) в загрузочное приложение Spring (с резервированием) через API-интерфейс POST. Для этого я использовал fetch и json.stringfy.

myfunction(firstname, lastname, email, password, callback){
  const data = {
    firstname: firstname,
    lastname: lastname,
    email: email,
    password: password
  };

  fetch("http://localhost:8080/data/somedata", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({data})
  }).then(response => {
    if (response.status === 200) {
      console.log("Response ::", response.data);

    } else {
      callback(false, response.error);
    }
  });
  }

В бэкэнде у меня есть загрузочное приложение Spring, показывающее API POST,

 @RequestMapping(value ="/somedata", method = RequestMethod.POST)
public @ResponseBody String addSome (@RequestBody Map<String,String> payload) {
    User n = new User();
    n.setFirstName(payload.get("firstname"));
    n.setLastName(payload.get("lastname"));
    n.setPassword(passwordEncoder.encode(payload.get("password")));
    n.setEmail(payload.get("email"));
    userRepository.save(n);
    return "Saved User";
}

Когда я вызываю API через POSTMAN, он работает нормально. Проблема в том, что json.stringify (data) не дает ожидаемого результата.

JSON stringified data :::  {"firstname":"testname","email":{"__reactInternalInstance$uzhpqmwh4k":{"tag":5,"key":null,"type":"input","stateNode":"~email","return":{"tag":5,"key":null,"type":"div","stateNode":{"__reactInternalInstance$uzhpqmwh4k":"~email~__reactInternalInstance$uzhpqmwh4k~return","__reactEventHandlers$uzhpqmwh4k":{"className":"col-75","children":{"type":"input","key":null,"ref":null,"props":{"className":"form-input","type":"text","id":"email","value":""},"_owner":{"tag":2,"key":null,"stateNode":{"props":{"data":{"fullname":"testname","username":"","password":"test","email":"test@testmail.com"},......

Я пытался использовать ниже. Тем не менее, данные в формате json содержат ненужные символы. JSON.stringify (data, getCircularReplacer ())

const getCircularReplacer = () => {
  const seen = new WeakSet();
  return (key, value) => {
    if (typeof value === "object" && value !== null) {
      if (seen.has(value)) {
        return;
      }
      seen.add(value);
    }
    return value;
  };
};

Может кто-нибудь, пожалуйста, помогите мне?

1 Ответ

0 голосов
/ 11 апреля 2019

Я думаю, что одна из моих переменных имеет тип объекта.Я изменил его на тип строки, и код отлично работает

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