У меня есть api restful в java, и он отлично работает, когда я использую бессонницу или почтальона, но я пытаюсь заставить мой интерфейс реагировать, но статус, который я получаю, «провал», и он показывает мне "заблокирован CORS". Я могу решить этот «блок», изменив мой интерфейс с http на https, но статус «сбой» все еще сохраняется, и когда я использую https при бессоннице, он не работает. Кто-нибудь может мне помочь?
код переднего конца
import axios from 'axios';
const api = axios.create({
baseURL: 'http://localhost:8080/PfcPubApi'
});
export default api;
import React, {useState} from 'react';
import api from './service/api';
function App() {
const [nome, setNome] = useState('');
const [cpf, setCpf] = useState('');
const [endereco, setEndereco] = useState('');
const [cargo, setCargo] = useState('');
const [senha, setSenha] = useState('');
async function cadastrarFunc(e){
e.preventDefault();
const response = await api.post('/api/item', {
nome,
cpf,
endereco,
cargo,
senha,
})
console.log(response.data);
}
return (
<form onSubmit={cadastrarFunc}>
nome:<input type="text" name="nome" value={nome} onChange={e => setNome(e.target.value)}></input>
cpf:<input type="text" name="cpf" value={cpf} onChange={e => setCpf(e.target.value)}></input>
endereco:<input type="text" name="endereco" value={endereco} onChange={e => setEndereco(e.target.value)}></input>
cargo:<input type="text" name="cargo" value={cargo} onChange={e => setCargo(e.target.value)}></input>
senha:<input type="text" name="senha" value={senha} onChange={e => setSenha(e.target.value)}></input>
<button type="submit">Salvar</button>
</form>
);
}
export default App;
может быть, это изображение тоже может помочь ... введите описание изображения здесь
изменить: код API
package controle;
import java.util.Set;
@javax.ws.rs.ApplicationPath("api")
public class ApplicationConfig extends javax.ws.rs.core.Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
addRestResourceClasses(resources);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(controle.FuncionarioService.class);
}
}
package controle;
import com.google.gson.Gson;
import dao.FuncionarioDao;
import java.sql.SQLException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.POST;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import modelo.Funcionario;
@Path("/item")
public class FuncionarioService {
@Context
private UriInfo context;
public FuncionarioService() {
}
@GET
@Path("")
@Produces(MediaType.APPLICATION_JSON)
public String listAllPerson() throws SQLException {
FuncionarioDao funcionario = new FuncionarioDao();
return new Gson().toJson(funcionario.consultarTodosFunc());
}
@GET
@Path("/{cpf}")
@Produces(MediaType.APPLICATION_JSON)
public String consultarFunc(@PathParam("cpf") String cpf) throws SQLException {
Funcionario funcionario = new Funcionario();
funcionario.setCpf(cpf);
FuncionarioDao Request = new FuncionarioDao();
return new Gson().toJson(Request.consultarFunc(funcionario));
}
@POST
@Path("")
@Consumes(MediaType.APPLICATION_JSON)
public String cadastrarFunc(String dataPerson) throws SQLException {
Funcionario funcionario = new Gson().fromJson(dataPerson, Funcionario.class);
FuncionarioDao Request = new FuncionarioDao();
funcionario = Request.cadastrarFunc(funcionario);
return new Gson().toJson(funcionario);
}
@PUT
@Path("")
@Consumes(MediaType.APPLICATION_JSON)
public String alterarFunc(String dataPerson) throws ClassNotFoundException, SQLException {
Funcionario person = new Gson().fromJson(dataPerson, Funcionario.class);
FuncionarioDao Request = new FuncionarioDao();
return new Gson().toJson(Request.alterarFunc(person));
}
@DELETE
@Path("/{cpf}")
@Consumes(MediaType.APPLICATION_JSON)
public String excluirFunc(@PathParam("cpf") String cpf) throws SQLException{
Funcionario funcionario = new Funcionario();
funcionario.setCpf(cpf);
FuncionarioDao Request = new FuncionarioDao();
return new Gson().toJson(Request.excluirFunc(funcionario));
}
}