当我尝试访问springboot restservice时出现以下错误:
"无法加载http://localhost:8080/Lerneinheit:对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:8081'因此不允许访问。响应的HTTP状态代码为403。"
我google了很多,并将其添加到我的RestController类:" @CrossOrigin(起源=" 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上运行,我的客户端页面正在运行&#34; gulp-live-server&#34;:&#34; 0.0.31&#34;在8081港口。
我尝试了很多,如果有人可以帮助我,那真的很酷。
欢呼声, JohnRamb0r
答案 0 :(得分:-1)
有多种方法可以解决此跨域请求问题: link
许多方法之一是在你的情况下使用类似下面的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")