我的AngularJS4项目中有以下代码:
const url = "http://localhost:4151/test";
this.http.get(url).toPromise()
.then((r) => {
console.log("SUCCESS", r);
})
.catch((e) => {
console.error("ERR", e);
});
在浏览器栏中键入URL时,URL工作正常,我在服务器端启用了CORS标头:
// Allow CORS
this.app.use(function(req: Request, res: Response, next: Function) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
每当我从Angular应用程序调用服务器时,它都会返回404 - Not Found错误。
任何想法如何解决这个问题?
感谢。
答案 0 :(得分:2)
如果有人在下面的问题之前找到了这个问题。
这就是问题所在: Angular4 giving 404 for json data that exists and is publicly serving
我曾使用该教程作为基础,并且仍然使用HttpClientInMemoryWebApiModule
来拦截http调用。我评论了它,它工作正常。
...
// This needed to be commented out vvv
// import { HttpClientInMemoryWebApiModule } from "angular-in-memory-web-api";
// import { InMemoryDataService } from "./services/dataSvc/in-memory-data.service";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
MyRoutingModule,
HttpClientModule,
// The HttpClientInMemoryWebApiModule module intercepts HTTP requests
// and returns simulated server responses.
// Remove it when a real server is ready to receive requests.
// This needed to be commented out vvv
// HttpClientInMemoryWebApiModule.forRoot(
// InMemoryDataService, { dataEncapsulation: false }
// )
],
providers: [MessageService],
bootstrap: [AppComponent]
})
export class AppModule { }
答案 1 :(得分:0)
对于有同样问题的人,我通过添加" @ ResponseBody"在我的后端春天RESTful方法。
答案 2 :(得分:0)
HttpClientInMemoryWebApiModule.forRoot(
InMemoryDataService, { dataEncapsulation: false }
)
从app.module.ts文件中删除以上行。我想您把它放在了从文档中学习httpclient的项目部分中了