IvanInvanov
@IvanInvanov
Новичок

Почему запрос от клиента Javascript на сервер Java не выполняется?

Написал калькулятор на Javascript и мне нужно, чтобы при каждом клике на знак равно, два числа и знак отправлялись на сервер, а сервер возвращал мне результат. Я по примерам сделал сервер и он бежит у меня на 3001 порту. Пост запрос я посылаю с помощью XMLHttpReguest. Ошибка звучит так: Failed to load resource: net::ERR_FAILED

q7U7h.png
39R14.png
NOmNI.png
xr6pH.png

Server.java

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

class Request {
    private float firstNumber;
    private float secondNumber;
    private String action;

    public Request(float firstNumber, float secondNumber, String action) {
        this.firstNumber = firstNumber;
        this.secondNumber = secondNumber;
        this.action = action;
    }

    public float getSecondNumber() {
        return secondNumber;
    }

    public String getAction() {
        return action;
    }

    public float getFirstNumber() {
        return firstNumber;
    }
}

@RestController
@EnableAutoConfiguration
@RequestMapping(value = "/get-result", method = { RequestMethod.GET, RequestMethod.POST })
public class Example {
    @PostMapping()
    public float xz(@RequestBody Request request) {

        float result = calc(request.getFirstNumber(), request.getSecondNumber(), request.getAction());

        return result;
    }

    private float calc(float a, float b, String oper) {
        float result = 0;
        switch (oper) {
            case "plus": result = a + b; break;
            case "minus": result = a - b; break;
            case "multiple": result = a * b; break;
            case "devide": result =  a / b; break;
        }
        return result;
    }

    public static void main(String[] args) {
        SpringApplication.run(Example.class, args);
    }

}


Client javascript

function total(){
        let requestBody = {
            firstNumber: resultNumber,
            secondNumber: parseInt(result.innerHTML),
            sign: arrOfOperations[0]
        };
        xhr.open("POST", 'http://localhost:3001/get-result');
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                console.log(xhr.responseText);
                resultNumber = JSON.parse(xhr.responseText);
                result.innerHTML = resultNumber
            }
        };
        let data = JSON.stringify({requestBody});
        xhr.send(data);
        temp = arrOfOperations[0];
}
  • Вопрос задан
  • 2200 просмотров
Пригласить эксперта
Ответы на вопрос 2
у вас блокировка по CORSу, междоменный запрос
Ответ написан
Комментировать
boompro
@boompro
Frontend dev
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы