컨트롤러 클래스에서 json 배열 형태로 응답을 얻으려고합니다. 자바 스크립트에서 요청을 보내려고하면 "허용되지 않음"오류가 발생합니다. 내 코드에서 버그를 찾는 데 도움을주세요.
이것은 내 컨트롤러의 코드입니다.
@RequestMapping(value = "/ajaxvalue", method = { RequestMethod.GET }, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Map<String, String> geResourceList(String name){
logger.info("getAllResources() from ajax begins: ");
Map<String, String> resourceMap = null;
try {
logger.info("getAllResources() from ajax begin: ");
resourceMap = new HashMap<String, String>();
List<ResourceModel> resourceList = resourceService
.getAllResources();
java.util.Iterator<ResourceModel> resourceIterator = resourceList.iterator();
while (resourceIterator.hasNext()) {
ResourceModel model = resourceIterator.next();
resourceMap.put("" + model.getResourceType(),
model.getName());
logger.info("" + model.getResourceType(),
model.getName());
}
} catch (Exception e) {
logger.debug("Error while getting location in ajax request:"
+ e.getMessage());
e.printStackTrace();
}logger.info("getAllResources() from ajax ENDS: ");
return resourceMap;
}
이것은 내 jquery 코드입니다.
jQuery.ajax({
url: '<c:url value='/learningresources/ajaxvalue'/>',
type: 'GET',
dataType:'json',
contentType: "application/json",
cache:false,
success:function(response){
alert(response);
},
error:function(jqXhr, textStatus, errorThrown){
alert("error: "+errorThrown);
}
});
클래스 경로에 jackson 라이브러리가 없기 때문일 가능성이 큽니다. 다음은 구성에 따라 두 가지 솔루션입니다.
maven을 사용하는 경우 pom.xml에 다음 종속성을 추가하십시오.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
jar를 수동으로 추가하는 경우 jackson 다운로드 페이지 로 이동하여 스프링 버전에 따라 필요한 버전을 다운로드하십시오 .
스프링 버전에 따라 적절한 jackson 버전을 얻었는지 확인하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다