Доступ к XMLHttpRequest по адресу 'http://localhost: 8092 / URL' из источника 'http://localhost: 8080' заблокирован политикой CORS - PullRequest
0 голосов
/ 20 апреля 2020

Я создал API Spring Boot Rest для сохранения пользователей ni c, имени пользователя и пароля в базе данных mySQL. Для этого использовал порт Tomcat 8096. Затем я создал отдельный проект для создания регистрационной формы (JSP) для вызова API, который я сделал ранее. Когда я запускаю его и нажимаю кнопку, я получаю эту ошибку в консоли:

Access to XMLHttpRequest at 'http://localhost:8092/api/leavecal/saveuser' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Это код, который я использовал в моей JSP

<!DOCTYPE html>
<html>
    <head>
        <meta charset="ISO-8859-1"/>
        <title>Demo Application</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    </head>
    <body>
<center>
    <div>
     NIC No. : <input type="text" name="userNic" id="userNic"/>
    </div>
     Username : <input type="text" name="username" id="username"/>
    <div>
     Password : <input type="text" name="password" id="password"/>
    </div>
    <div>
        <input type="submit" name="saveNewEmployee" id="saveNewEmployee" value="POST DATA" onclick="postDataFromAPI();"/>
    </div>
</center>
    <script>

    function postDataFromAPI() {

        var modelObj = {
                userNic: $("#userNic").val(),
                username: $("#username").val(),
                password: $("#password").val()
        };

        console.log("post data:"+modelObj);     

         $.ajax({
                type: "POST",
                url: "http://localhost:8092/api/leavecal/saveuser",
                headers: {
                    "Content-Type": "application/json"
                },
                data: JSON.stringify(modelObj),
                success: function (data) {
                    console.log("POST API RESPONSE::"+data);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                }
            });
    }
    </script>
    </body>
</html>

Любая помощь приветствуется

1 Ответ

1 голос
/ 20 апреля 2020

Используйте

@ CrossOrigin

аннотацию поверх класса вашего контроллера.

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