2016-03-03 9 views
8

मैं अपने कोणीय अनुप्रयोग से एपीआई को प्रॉक्सी करने के लिए grunt-connect-proxy "^ 0.2.0" का उपयोग कर रहा हूं। परियोजना योनि कोणीय जनरेटर के साथ शुरू की गई थी।ग्रंट कनेक्ट प्रॉक्सी: 404 नहीं मिला

मैं निर्देशों का पालन किया है here लेकिन जब प्रॉक्सी प्रयोग किया जाता है, मैं:

Failed to load resource: the server responded with a status of 404 (Not Found) 
http://localhost:9000/api/users 

मेरे प्रॉक्सी कॉन्फ़िगरेशन:

connect: { 
    options: { 
    port: 9000, 
    // Change this to '0.0.0.0' to access the server from outside. 
    hostname: 'localhost', 
    livereload: 35729 
    }, 
    proxies: [{ 
    context: '/api', // the context of the data service 
    host: 'localhost', // wherever the data service is running 
    port: 8080, // the port that the data service is running on 
    https: false, 
    xforward: false 
    }], 

मेरे मिडिलवेयर:

livereload: { 
    options: { 
     open: true, 
     base: '', 
     middleware: function (connect, options) { 
     var middlewares = []; 

     middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest); 

     middlewares.push(connect.static('.tmp')); 
     middlewares.push(connect.static('test')); 
     middlewares.push(connect().use(
      '/bower_components', 
      connect.static('./bower_components') 
     )); 
     middlewares.push(connect.static(appConfig.app)); 

     return middlewares; 
     } 
    } 
    }, 

मेरा काम

grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { 
    if (target === 'dist') { 
    return grunt.task.run(['build', 'connect:dist:keepalive']); 
    } 

    grunt.task.run([ 
    'clean:server', 
    'wiredep', 
    'concurrent:server', 
    'autoprefixer:server', 
    'configureProxies:server', 
    'connect:livereload', 
    'watch' 
    ]); 
}); 

संपादित स्थानीय होस्ट की सेवा: 8080/उपयोगकर्ताओं रिटर्न डाकिया के माध्यम से एक 403 वर्तमान में है, तो एपीआई चल रहा है।

+0

क्या आपने सर्वर से प्रयास किया: {} विकल्प से पहले? –

+0

इस प्रश्न पर एक नज़र डालें .. शायद यह https://stackoverflow.com/questions/34321143/adding-grunt-connect-proxy-to-generator-angular-gruntfile-js की मदद करेगा – aprok

उत्तर

0

नहीं आपके सवाल का सीधे NPM मॉड्यूल का जवाब दे, लेकिन एक समाधान (के बाद से और कोई जवाब है) उपलब्ध कराने के ... है आप की कोशिश की कनेक्ट-modrewrite

इस वास्तव में आप क्या करने की कोशिश कर रहे हैं है।

0

मुझे वही समस्या थी जो मैं इस तरह से हल करता हूं और मेरे लिए इसका काम करता हूं। नीचे मेरी कोड में देखो: -

connect: { 
      server: { 
       options: { 
        keepalive: true, 
        port: 8001, 
        protocol: 'http', 
        hostname: '*', 
        directory: 'dist', 
        open: { 
         target: 'http://localhost:8001/myDemo.html', 

        }, 
         middleware: function(connect, options, middlewares) { 

           middlewares.unshift(function(req, res, next) { 
            res.setHeader('Access-Control-Allow-Credentials', true); 
            res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
            res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
            **if (req.method.toUpperCase() == 'POST') req.method='GET';** 
            return next(); 
           }); 

           return middlewares; 
         } 

       } 
      } 
     }, 

(req.method.toUpperCase() == 'POST') स्टार चिह्नित लाइन यदि IE req.method = 'प्राप्त' देखते हैं; मैंने यह चाल पूरी की और यह मेरे लिए काम किया। यह कण मुझे भी मदद करता है https://github.com/gruntjs/grunt-contrib-connect#middleware

संबंधित मुद्दे