Заголовок: Конечная точка Spring Boot API возвращает 404 Not Found для запроса на регистрацию (без баз данных)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Заголовок: Конечная точка Spring Boot API возвращает 404 Not Found для запроса на регистрацию (без баз данных)

Сообщение Anonymous »

Я разрабатываю веб-приложение, развернутое в Azure. Конечная точка регистрации моего API возвращает ошибку 404 Not Found при доступе из внешнего интерфейса. Бэкэнд настроен для обработки запросов на регистрацию, а внешний интерфейс правильно настроен для отправки регистрационных данных.
это Java-контроллер
он также возвращает 404 при развертывании на локальном хосте. (я проверил, верны ли конечные точки, да)
Конечная цель для меня состоит в том, чтобы мой логин работал (развернутый на Azure), а не только localhost, если я вообще заработаю

Код: Выделить всё

@RestController
@RequestMapping("/api/users")
public class UserController {

private final UserService userService;

@Autowired
public UserController(UserService userService) {
this.userService = userService;
}

@PostMapping("/register")
public ResponseEntity registerUser(@RequestBody User newUser) {
User registeredUser = userService.registerUser(newUser.getPhoneNumber(), newUser.getUsername(), newUser.getPassword());
if (registeredUser != null) {
return ResponseEntity.ok("Registration successful");
} else {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Registration failed");
}
}

@PostMapping("/login")
public ResponseEntity loginUser(@RequestBody User loginUser, HttpSession session) {
User user = userService.loginUser(loginUser.getUsername(), loginUser.getPassword());
if (user != null) {
session.setAttribute("userId", user.getUserId());
Map response = new HashMap();
response.put("message", "Login successful");
return ResponseEntity.ok(response);
} else {
Map response = new HashMap();
response.put("message", "Invalid credentials");
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(response);
}
}

@PostMapping("/logout")
public ResponseEntity logoutUser(HttpSession session) {
session.invalidate();
Map response = new HashMap();
response.put("message", "Logged out successfully");
return ResponseEntity.ok(response);
}

@GetMapping("/test")
public ResponseEntity testEndpoint() {
return ResponseEntity.ok("Test endpoint is working!");
}
}

Код: Выделить всё

public class UserService {
private UserData userData = new UserData();

public User registerUser(String phoneNumber, String username, String password) {
return userData.registerUser(phoneNumber, username, password);
}

public User getUserById(String userId) {
return userData.getUserById(userId);
}

public User loginUser(String username, String password) {
return userData.loginUser(username, password);
}
}

Код: Выделить всё

package Backend;

import java.util.ArrayList;
import java.util.List;

public class User {
private String userId;
private String phoneNumber;
private String username;
private String password;
private List friends;

public User(String userId, String phoneNumber, String username, String password, List friends) {
this.userId = userId;
this.phoneNumber = phoneNumber;
this.username = username;
this.password = password;
this.friends = friends;
}

// Getters and setters
}

Код: Выделить всё

document.getElementById('registerForm').addEventListener('submit', function(event) {
event.preventDefault();
let username = document.getElementById('username').value;
let password = document.getElementById('password').value;
let phoneNumber = document.getElementById('phonenumber').value;

var userData = {
username: username,
password: password,
phoneNumber: phoneNumber
};

fetch('http://localhost:8080/api/users/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userData)
})
.then(response => {
if (response.ok) {
alert('Registration successful!');
document.getElementById('registerForm').reset();
window.location.href = 'login.html';
} else {
throw new Error('Registration failed.');
}
})
.catch(error => {
console.error('Registration error:', error);
alert('Registration failed.  Please try again later.');
});
});

Проблема:
Когда я пытаюсь отправить регистрационную форму, я получаю сообщение об ошибке 404 Not Found. Я убедился, что мой API правильно развернут в Azure и должен быть доступен.
Я:
Убедился, что служба приложений Azure работает.
Убедился, что конечная точка /api/users/register правильно определен в UserController.java.
Проверена конфигурация CORS в WebConfig.java, чтобы разрешить запросы из всех источников.
Подтверждено, что файл JavaScript (Register.js) связан правильно и сделать запрос POST на правильный URL-адрес Azure.
Редактировать:
все работает нормально локально, и мой интерфейс выполнен с использованием простого html/css/js
Идентификаторы и имена ссылок также связаны правильно.
Изменить:
все мои HTML-css и js находятся в статическом файле,
src/main/resources/static/ccs
src/main/resources/static/js
src/main/resources/static/(весь мой HTML-код)

Подробнее здесь: https://stackoverflow.com/questions/786 ... on-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»