当我尝试访问我的 springboot restservice 时,我收到以下错误:
"无法加载 http://localhost:8080/Lerneinheit:对预检请求的响应未通过访问控制检查:请求的资源上不存在'访问控制-允许源'标头。因此,不允许访问源"http://localhost:8081"。响应具有 HTTP 状态代码 403。
我用谷歌搜索了很多,并将其添加到我的 RestController 类中:"@CrossOrigin(origins = "http://localhost:8081"(">
@CrossOrigin(origins = "http://localhost:8081")
@RestController
@RequestMapping("/Lerneinheit")
public class LerneinheitController {
@Autowired
LerneinheitRepository lerneinheitRepository;
@RequestMapping(method=RequestMethod.GET)
public List<Lerneinheit> getAllLerneinheiten(){
List<Lerneinheit> lerneinheiten = new ArrayList<Lerneinheit>();
for(Lerneinheit l : lerneinheitRepository.findAll())
lerneinheiten.add(l);
return lerneinheiten;
}
这是我访问数据的jQuery代码:
var data = {}
data["query"] = $("#query").val();
$.ajax({
type : "POST",
contentType : "application/json",
url : "http://localhost:8080/Lerneinheit",
data : JSON.stringify(data),
dataType : 'json',
timeout : 100000,
success : function(data) {
console.log("SUCCESS: ", data);
},
error : function(e) {
console.log("ERROR: ", e);
},
done : function(e) {
console.log("DONE");
}
});
服务器在端口 8080 上运行,我的客户端页面在端口 8081 上运行"gulp-live-server":"0.0.31"。
我尝试了很多,如果有人能帮助我,那真的很酷。
干杯约翰兰布0r
有多种方法可以解决此跨域请求问题:链接
许多方法之一是在您的情况下使用 JSONP,如下所示:
$.ajax({
url: http://localhost:8081/Lerneinheit,
dataType: "jsonp",
jsonp: "callback",
success: function( response ) {
/* fetch the response and do the processing */
};
}
});
删除 - @CrossOrigin(origins = "http://localhost:8081")