This question already has answers here:
hapi.js Cors Pre-flight not returning Access-Control-Allow-Origin header
(2个答案)
在11个月前关闭。
我使用NodeJs + HapiJs V17开发了REST WebServices,并与Angular 6集成,当我开始执行POST / PUT请求时,CORS遇到了麻烦
我在本地主机和端口4000中部署了HapiJS应用程序,并使用Angular Cli运行了Angular 6代码。
当我从Chrome浏览器执行此操作时,出现以下错误:
CORS策略已阻止从源“ http://localhost:4000/api/v1/authenticateUser”对“ http://localhost:4200”处的XMLHttpRequest的访问:对预检请求的响应未通过访问控制检查:邮件头上不存在“ Access-Control-Allow-Origin”标头要求的资源。
我在Hapi Server的标头部分尝试了各种选项
Hapi服务器代码
角度6
我搜索了很多帖子,尝试了很多事情,但是没有运气。
如果有人遇到此问题并解决了该问题,请向我发布解决方案。
这阻止了我的产品发布。
这不是以下链接的重复帖子:
hapi.js Cors Pre-flight not returning Access-Control-Allow-Origin header
在上面的链接中,这是Hapi V16的问题。
但是我在HapiJS V17中面临这个问题。
我找到了解决方案:
使用hapi-cors插件,请参见以下示例代码。
(2个答案)
在11个月前关闭。
我使用NodeJs + HapiJs V17开发了REST WebServices,并与Angular 6集成,当我开始执行POST / PUT请求时,CORS遇到了麻烦
我在本地主机和端口4000中部署了HapiJS应用程序,并使用Angular Cli运行了Angular 6代码。
当我从Chrome浏览器执行此操作时,出现以下错误:
CORS策略已阻止从源“ http://localhost:4000/api/v1/authenticateUser”对“ http://localhost:4200”处的XMLHttpRequest的访问:对预检请求的响应未通过访问控制检查:邮件头上不存在“ Access-Control-Allow-Origin”标头要求的资源。
我在Hapi Server的标头部分尝试了各种选项
Hapi服务器代码
const server = new Hapi.Server({
port: 4000, routes: {
cors: {
origin: ['*'],
headers: ["Accept", "Authorization", "Content-Type", "If-None-Match", "Accept-language"]
}
}
});
角度6
public login(payload: TokenPayload): Observable<ServiceResponse> {
return this.http.post<ServiceResponse>(`${environment.apiUrl}/authenticateUser`, payload)
.pipe(map(response => {
if (response.data) this.saveUser(response.data);
return response;
}));
}
我搜索了很多帖子,尝试了很多事情,但是没有运气。
如果有人遇到此问题并解决了该问题,请向我发布解决方案。
这阻止了我的产品发布。
这不是以下链接的重复帖子:
hapi.js Cors Pre-flight not returning Access-Control-Allow-Origin header
在上面的链接中,这是Hapi V16的问题。
但是我在HapiJS V17中面临这个问题。
我找到了解决方案:
使用hapi-cors插件,请参见以下示例代码。
await server.register({
plugin: require('hapi-cors'),
options: {
origins: ['*'],
allowCredentials: 'true',
exposeHeaders: ['content-type', 'content-length'],
maxAge: 600,
methods: ['GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS'],
headers: ['Accept', 'Content-Type', 'Authorization'] // add your header params
},
checkOrigin: true
});
await server.start();`
最佳答案
您是否尝试过credentials
标志?
cors: {
origin: ['my-origin-domain'],
credentials: true,
additionalHeaders: ['cache-control', 'x-requested-with', 'x-csrf-token', 'set-cookie', ...]
},
关于javascript - Hapi.js v17 CORS飞行前未返回Access-Control-Allow-Origin header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55477532/
10-11 22:20