Probably you’re already using grunt to serve your local frontend code. Everything is fine, but if you’re developing your backend with something different than JavaScript (Being a Java developer I heard that might happen), you will have problems accessing this backend while running grunt server. With grunt-connect-proxy there exists a grunt module to help you out. It basically delegates requests that match a given URL to a different backend of your choice. Unfortunately I found it rather difficult to configure, if you are unaware of the connect middleware concept.

Basically you just need to add two things to your Gruntfile.js file:

Firstly add the connect server configuration to your config JSON inside of grunt.initConfig. This example delegates all requests to http://localhost:8000/services to http://localhost:8090/services - keep in mind the grunt server is running on port 8000 and the backend on port 8090:

connect: {
    site1: {
        options: {
            port: 8000,
            base: '.',
            keepalive: true,
            middleware: function (connect, options, middlewares) {
                return middlewares;
        proxies: [
                context: '/services',
                host: 'localhost',
                port: 8090,
                https: false,
                xforward: false

Secondly register your grunt server task:

grunt.registerTask('server', function (target) {[

then you can call your grunt server with the configured proxy via : grunt server from the command line.