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 adding access-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

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -