2016-04-05 19 views
5

Bir dış etki alanına api istekleri göndermek için webpack-dev sunucusu proxy yapılandırmasını kullanmaya çalışıyorum ve çalışmayı başaramıyorum. Yani, her zaman benim uygulamamız http://laravelandwebpack.demo bu talebi göndermesi gerektiğini uri /api/v1... ile bir istekteWebpack-dev-server proxy üzerinden harici etki alanına istek göndermiyor

var path = require('path') 

module.exports = { 
    entry: './client/index.js', 
    output: { 
     filename: 'bundle.js', 
     path: path.resolve(__dirname, 'public/assets'), 
     publicPath: 'assets' 
    }, 
    devServer: { 
     contentBase: 'public', 
     proxy:{ 
      '/api/v1*': { 
       target: 'http://laravelandwebpack.demo/', 
       secure: false 
      } 
     } 
    } 
} 

:

İşte benim yapılandırma var. Benim Vue uygulamasında

, ben istekte bulunmaya vue-resource kullanıyorum ve gerekli uri öneki ile tüm istekleri varsaymak ediyorum:

var Vue = require('vue') 
Vue.use(require('vue-resource')) 

new Vue({ 
    el: 'body', 
    http: { 
     root: '/api/v1', // prefix all requests with this 
     headers:{ 
      test: 'testheader' 
     } 
    }, 
    ready: function(){ 
     this.$http({ 
      url: 'tasks', 
      method: 'GET' 
     }).then(function (response){ 
      console.log(response); 
     }, function (response){ 
      console.error(response); 
     }) 
    } 
}) 

URL doğru inşa, ancak konum ediliyor hala webpack-dev-sunucu olan localhost:8080 işaret: okudum ve

Errant http request

webpack-dev-sunucu için dokümanlar yeniden okumak ve ben yanlış kurdunuz nerede çözemiyorum . Herhangi bir fikir?

+0

URL'lerin doğru localhost 'işaret ediyor: Harici bu senin devserver, ve istek geldi sonra, devserver irade vekil o (aka bunu yoluyla göndermek), çünkü 8080' sağladığınız url. Deviller, proxy'yi asla fark etmez. İsteklerinize ne olur, bir hata günlüğe kaydediliyor promise.catch()? bu ne? (ve vue-cli'in web paketi şablonunu herhangi bir şansla kullanmıyor musunuz?) –

cevap

1

Bu sorun için bir geçici çözüm buldum. Benim durumumda, herhangi bir /api/* yolunda arka ucuma vekaletçi istekleri ihtiyacım var, bu yüzden api ile başlamayan istekleri atladım.

Örnek: proxy: { '*': { target: 'http://localhost:8081', secure: false, rewrite: function(req) { console.log('rewriting'); req.url = req.url.replace(/^\/api/, ''); }, bypass: function(req, res, proxyOptions) { if (req.url.indexOf('api') !== 0) { console.log('Skipping proxy for browser request.'); return '/index.html'; }else{ return false; } } } }

+0

Bu nesneyi hangi yapılandırma dosyasına koydunuz? – partizanos

İlgili konular