所以即时尝试构建2个独立的应用程序1作为后端(Laravel作为REST api)和Angular应用程序作为客户端,最终这2个应用程序必须一起工作与单个网络应用程序相同的域。在同一个域下运行AngularJs和Laravel应用程序
什么即时试图完成:
我的角度应用程序是从index.html的引导单页的应用程序,所有的路由都通过角,除了处理/ API/*应通过Laravel应用程序处理。 即时通讯使用2个不同的应用程序,以建立更加动态的网络应用程序,所以我可以轻松地更改我的后端框架和技术,并将每个应用程序作为“独立”更容易地测试。 我不想在我的响应头中使用CORS,因为我的REST API只服务于我的Angular应用程序,而不是其他应用程序,例如开发人员的API。 我想使用代理,将转寄所有的请求都来自http://localhost:9100/api/ *到:http://localhost:9000/api/ *
首先IM运行在端口9000上运行Laravel:通过运行一饮而尽
php artisan serve --port 9000
下端口9100
和角度的应用任务(的index.html是在路径./src):
gulp.task('webserver', function(){
connect.server({
root: './src',
port: 9100,
middleware: function(connect, o) {
var url = require('url');
var proxy = require('proxy-middleware');
var options = url.parse('http://localhost:9000/api');
options.route = '/api';
return [proxy(options)];
}
});
});
这两个应用程序很好地工作作为一个独立的,但是当我尝试浏览到: http://localhost:9100/api/v1/comments我收到的F ollowing错误:
错误:在errnoException连接ECONNREFUSED(net.js:904:11)在Object.afterConnect [按的onComplete](net.js:895:19)
我试图调查的原因这个问题,有人说它连接到我的主机文件,所以我不得不添加该行: 127.0.0.1 localhost
但它不工作。 我尝试了不同的任务,一饮而尽:
gulp.task('webserver', function() {
gulp.src("./src")
.pipe(webserver({
port: 9100,
livereload: true,
open: 'http://localhost:9100',
proxies: [
{
source: '/api', target: 'http://localhost:9000/api'
}
]
}));
});
而且我收到完全相同的错误...
我的开发环境是Windows 10位的x64。
你说laravel运行在9000端口为什么它会回应: http:// localhost:9100/api/v1/comments 或者是你的角度网站的网址也是? – Pitchinnate
,因为我添加了一个代理,当我发送一个http请求到localhost:9100/api/v1/comments时,理论上我应该从localhosy:9000/api/v1/comments得到回应,我这样做是因为我需要2个不同的应用在我知道的唯一方式下运行相同的域...我的角度应用程序运行在端口9100. – Lihai