I am trying to access the JSON response from Spring application on a HTML page using AngularJS and getting "No 'Access-Control-Allow-Origin' header is present on the requested resource." error. The requested URL is http://174.142.61.106:8080/BMAppJ/learningresources/getlist/.
The HTML code is given below:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('myApp', []);
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
app.controller('Hello', function($scope, $http) {
$http.get('http://174.142.61.106:8080/BMAppJ/learningresources/getlist').
success(function(data) {
$scope.response = data;alert(response);
});
$scope.clickme=function(){
var res = jQuery("#resource_type").val();
$http.get('http://174.142.61.106:8080/BMAppJ/learningresources/getlist/'+res).
success(function(data) {
$scope.response = data;
});
}
});
</script>
</head>
<body>
<table width="100%" ng-app="myApp" ng-controller="Hello">
<tr><td><b>Resource Type</b></td><td><b>Resource Name</b></td></tr>
<tr ng-repeat="x in response">
<td>{{x.resourceType}}</td>
<td>{{x.name}}</td>
</tr>
</table>
</body>
</html>
The Spring service code is given below:
@RequestMapping(value = "/getlist", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody ResponseEntity geResourceList(HttpServletRequest request, HttpServletResponse response){
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
response.addHeader("Access-Control-Allow-Headers", "Content-Type");
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Access-Control-Allow-Origin", "*");
logger.info("getAllResources() from ajax begins: ");
Map resourceMap = null;
JSONArray map = new JSONArray();
try {
logger.info("getAllResources() from ajax begin: ");
List resourceList = resourceService
.getAllResources();
java.util.Iterator resourceIterator = resourceList.iterator();
while (resourceIterator.hasNext()) {
resourceMap = new HashMap();
ResourceModel model = resourceIterator.next();
resourceMap.put("resourceType", "" + model.getResourceType());
resourceMap.put("name", "" + model.getName());
logger.info("" + model.getResourceType(),
model.getName());
map.add(resourceMap);
}
} catch (Exception e) {
logger.debug("Error while getting location in ajax request:"
+ e.getMessage());
e.printStackTrace();
}logger.info("getAllResources() from ajax ENDS: ");
return new ResponseEntity(map, responseHeaders, HttpStatus.OK);
}
Please, let me know of the issues and solution. Also, let me know if the question is not clear. Thanks in advance.