Не в состоянии получить доступ к данным, созданным серверным API в Javascript, но работает на Почтальоне

Это странная проблема, и я пытался отладить ее в течение дня безрезультатно. Я написал REST API в Spring 4 и, кажется, работает нормально. Я проверил ссылки с почтальоном, они работают нормально, и даже когда я проверяю их в браузере, они работают нормально. Так что мои работы, как это, если я позвоню,

http://localhost:9000/myapi/receivedMessags/myUserId

Я получаю JSON этой формы,

[{"senderId":"myUSerId","receiverId":"mySenderId","mediaId":"22797361348"},{"senderId":"myUSerId","receiverId":"mySenderId","mediaId":"22797361348"},{"senderId":"myUSerId","receiverId":"mySenderId","mediaId":"22797361348"},{"senderId":"myUSerId","receiverId":"mySenderId","mediaId":"22797361348"}]

Который является совершенно действительными данными JSON.

Сейчас я пытаюсь использовать эти данные с помощью fetch-API. Это моя функция,

export function fetchMessages(url) {
  return fetch(url, { method: "get",
                      headers: {
                        "Content-type": "text/plain"
                      },
                      credentials: 'include',
                      mode: 'no-cors'})
    .then((response) => {
      return response.json();//A
    })
    .then((data) => {
      //console.log("data: ", data);
      // let messages = [];
      // for (let i = 0; i < data.length; i++) {
      //   let message = new Message(data[i].senderId, data[i].receiverId, data[i].mediaId);
      //   messages.push(message);
      // }
      console.log(data);
      //return messages;
    })
    .catch((error)=> {
      console.log("Request failed: ", error);
    });
}

Этот метод не может получить доступ к данным. У меня не получается с ошибкой,

Request failed:  SyntaxError: Unexpected end of input(…)

После долгих отладок я обнаружил, что в синтаксисе нет ничего плохого, и он терпит неудачу в строке A, где он пытается проанализировать ответ на json. Если я изменю эту строку на response.text() синтаксическая ошибка исчезает, и я получаю пустым, что означает, что нет никаких данных. У меня вопрос, почему я не могу получить доступ к данным, когда я знаю, что мой серверный код работает нормально.

Если это поможет, вот код сервера,

@RequestMapping(value = "/receivedMessages/{userId}",
                    method = RequestMethod.GET,
                    produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public ResponseEntity getReceivedMessages(@PathVariable("userId") String userId) {

        List<Message> receivedList = null;

        try {
            receivedList = controller.getReceivedMessages(userId);
        } catch (Exception e) {

        }

        return new ResponseEntity(receivedList, HttpStatus.OK);
    }

Infact, я пытался POST на API, а также (который отлично работает в POSTMAN), но не удается с помощью моего клиентского интерфейса. Любая помощь высоко ценится.

0 ответов

Другие вопросы по тегам