- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 hapi v6.11.1,并且一直在尝试将来自 hapi.js 服务器的传入请求有条件重定向到另一台服务器。这是我到目前为止尝试过的:
server.on('onRequest',function(request,reply) {
if(request.headers.customHeader) { // redirect only if header found
reply('custom header redirection').redirect('http://someurl.com');
return;
}
reply();
});
但是上述解决方案不起作用,仍然会访问我的服务器,而不是我指定的服务器。
我尝试在“onRequest”处理程序上执行reply.proxy(),但收到以下错误:
错误:未捕获错误:如果解析有效负载或输出不是流或数据,则无法代理
在尝试找出解决方案时,我从 hapi.js 文档中发现了以下内容:
仅在处理程序方法内且仅在reply()、reply.file()、reply.view()、reply.close()、reply.proxy()或reply.redirect(之一之前可用) 被调用。
但问题是我有大约 100 条路由,现在我必须更改每个请求的处理程序,以便在满足我的条件时允许代理,但我不想这样做。
如果可以实现以下任何一项,我会很高兴:
将请求从“onResponse”重定向到另一个域,而不更改处理函数。
服务器方法,可以让我配置所有路由配置并在其上注入(inject)代理重定向。
谢谢。
最佳答案
好吧,我想出了以下解决方案:
server.on('onRequest',function(request,reply) {
if(request.headers.customHeader) {
request.setUrl('/redirect');
}
reply();
});
然后创建一个仅代理请求的路由处理程序:
{
method : '*',
path : '/redirect',
config : {
payload : {
output : 'stream',
parse : false,
},
handler : function(request,reply) {
var url = 'https://customUrl.com';
reply.proxy({'uri' : url, passThrough : true});
}
}
}
在上面,我必须在“onResponse”上执行 setUrl,因为这是我可以按照 hapijs 文档执行此操作的唯一地方。其次,我在“/redirect”上传递了正确的值,以使代理重定向正常工作。
我仍然会等待能为我提供比这更好的解决方案的人。
关于redirect - Hapi.js 从 onRequest 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31450050/
我已经配置了axios插件onRequest helper来对API请求设置Authorization header ,如下所示 1. export default function({ $axios
浏览文档,我遇到了: ...you can call functions directly with an HTTP request or a call from the client. ~ sour
我正在使用 hapi v6.11.1,并且一直在尝试将来自 hapi.js 服务器的传入请求有条件重定向到另一台服务器。这是我到目前为止尝试过的: server.on('onRequest',func
我正在构建一个 chrome 扩展并尝试将事件监听器附加到此扩展,但我在后台页面的控制台中没有看到任何内容。 chrome.extension.onRequest.addListener(functi
我正在尝试学习 Firebase,同时制作一个小项目,我需要在系统中存储 IP 地址。 但我意识到它不像我以前使用 Express 那样工作。我需要与此要点完全相同的结果:https://gist.g
根据文档,我们可以添加 appcheck,如下所示, exports.yourCallableFunction = functions.https.onCall((data, context) =>
我正在尝试编写一些方法装饰器以在 typescript 中与 firebase 函数一起使用,但我对语法有点困惑,到目前为止我尝试过的方法没有用。 我想在我的类中有方法,例如: @OnCall('eu
我同时使用 nuxt-auth和 nuxt-axios模块。我想拦截每个 axios 请求并检查我的 JWT 访问 token 是否快过期,如果是,我想更新它。我为 nuxt-auth 写了一个小扩展
我尝试创建一个带有请求 URL 分割的 https 函数,但它总是给我这样的 undefine log console 来自此代码 //functions/index.js exports.showE
这个问题已经有答案了: Chrome Extension: Port error: Could not establish connection. Receiving end does not exi
我想组合多个Flux同一类型的在一起。在订阅时,它们应该并行执行。订阅方法应该能够限制请求数量。 我尝试过Flux.merge(..)和Flux.concat(..) 。后者似乎强制执行顺序请求生产,
我想在将请求分派(dispatch)到操作之前执行业务逻辑。 这是我的代码: public class Global extends GlobalSettings { public Actio
我无法检索从“https.onRequest”函数发回的消息。 firebase 客户端根据错误代码重写消息,我无法恢复最初发送的正文或 JSON。 关于 Firebase 函数: exports.a
我一直在搜索所有 SO 并阅读谷歌文档,但我似乎找不到解决方案。 我的 Chrome 扩展正在注入(inject)一个内容脚本,我想设置一个 onRequest.listener 以便将请求发送到内容
我无法检索从“https.onRequest”函数发回的消息。 firebase 客户端根据错误代码重写消息,我无法恢复最初发送的正文或 JSON。 关于 Firebase 函数: exports.a
我需要通过将字符串数据的值分配给 OnResponse() scpoe 之外的另一个方法来传递响应字符串,以便我可以通过调用该方法从中返回 JSONObject,但它总是返回 null 我需要的只是从
我的函数“someFunc”是通过单击按钮启动的,但在收到请求时不会启动。有什么想法吗? var someVariable = 'someText'; function someFunc(messag
我的 Firebase 函数存在一些重大问题。我正在尝试创建一个 https 请求,以便我可以将数据发送到 Firebase。 我有一个 super 简单的代码只是为了测试,它导致了错误: 下面是我的
我有 2 个相同的 Firebase 函数,可将数据批量写入 Firestore。一种是包装在预定/onRun 触发器中,另一种是 HTTP onRequest 触发器。 这两个函数都可以正常工作并且
我是一名优秀的程序员,十分优秀!