自从我从内存web-api网址切换到数据库网址后,Angular应用程序的JavaScript控制台就出现了404错误
JavaScript console output 404 error
我使用localhost在lite-server上运行我的角应用程序:3035 /
我在localhost上运行了一个mongodb / nodejs / express数据库:3039 /
我的角度应用是“GET” - 使用内存中的web-api url'api / loggerData'
有什么想法?是CORS吗?别的什么?我是否还需要在角度侧配置lite-server?
这是我的角度代码:
private loggerUrl = 'localhost:3039/read/getall/';
getLoggerData(): Promise <Dataset[]> {
return this.http.get(this.loggerUrl)
.toPromise()
.then(response => response.json().data as Dataset[])
.catch(this.handleError);
}
另外,我尝试在数据库端实现一些没有影响任何内容的CORS解决方案 -
这里是我修改过的一些数据库代码:
var app = express();
app.use(function (req, res, next) {
//Website you wish to allow to connect
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3035');
// Request methods you wish to allow
res.setHeader('Access-Control-Allow-Methods',
'GET, POST, OPTIONS, PUT, PATCH, DELETE');
// Request headers you wish to allow
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
// Set to true if you need the website to include cookies in the requests sent
// to the API (e.g. in case you use sessions)
res.setHeader('Access-Control-Allow-Credentials', true);
// Pass to next layer of middleware
next();
});
答案 0 :(得分:4)
No collection
错误通常意味着您已经悬挂了一些相当于:
InMemoryWebApiModule.forRoot(InMemoryDataService)
你的ngModule中的,当你尝试发出“真正的”http请求时会干扰它。所以从你的ngModule中删除它,你应该好好去! :)
在此之后你可能仍会遇到CORS问题,但是这应该可以解决你得到的当前错误:)
正如echonax所提到的,你应该使用完整的URL,其中包含http:
private loggerUrl = 'http://localhost:3039/read/getall/'