javascript - Consuming Java Spring REST service with angular.js issue -
javascript - Consuming Java Spring REST service with angular.js issue -
i have issue related cors. i'm writing client-server app using angular , spring. when want send http request, browser shows there "cross-origin request blocked: same origin policy disallows reading remote resource @ http://localhost:8080/..." error. i've deployed rest on localhost using tomcat, , seek consume response using angular, deployed "npm" server, can't because of cors issue. doing wrong? here code snippets:
server side:
@requestmapping(value="/dummy", consumes="application/json", method=requestmethod.get) public @responsebody string dummy() { homecoming "lol"; }
client side:
var authorizationapp = angular.module("authorizationapp", ['pagecontroller','ngroute']); authorizationapp.config(function($httpprovider) { $httpprovider.defaults.usexdomain = true; delete $httpprovider.defaults.headers.common['x-requested-with']; }); authorizationapp.config(['$routeprovider', function($routeprovider) { ..... }]) var pagecontroller = angular.module('pagecontroller',[]) pagecontroller.controller('pagectrl',['$scope', '$routeparams', '$location', '$http', function($scope, $routeparams, $location, $http) { .................................. $scope.somefunc = function() { $http.get("http://localhost:8080/rabota/student/dummy") .success(function(data, status,headers,config) { alert("sent"); }) .error(function(data, status,headers,config) { alert(":-("); }) } }])
by default, browser not allow ajax requests different domain (or same domain different port). there number of ways address this:
proxying requests backend through server hosts frontend addingaccess-control-allow-origin
header backend's response hosting frontend , backend on same server disabling same-origin policy in browser if want work on local machine, easiest way disable security in browser (for chrome: disable same origin policy in chrome).
i recommend reading article, if want more detailed information: https://developer.mozilla.org/en-us/docs/web/http/access_control_cors
edit: if you're using tomcat 7 (or above) can seek adding below snippet web.xml
file
<filter> <filter-name>corsfilter</filter-name> <filter-class>org.apache.catalina.filters.corsfilter</filter-class> <init-param> <param-name>cors.allowed.origins</param-name> <param-value>http://host:port</param-value> </init-param> </filter> <filter-mapping> <filter-name>corsfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
where host , port host , port of npm server.
java javascript angularjs spring
Comments
Post a Comment