开发者问题收集

重定向调试

2018-12-13
890

代码中有一个错误,但我无法弄清楚什么。

未能(在Promise)参考eRROR:REQ未定义 在DoreDirects(VM8 Worker.js:6) 在活动(VM8 Worker.js:2) 未访问(响应)参考:未定义REQ

029539997
2个回答

req.headers.get 将返回一个字符串或 null( 文档 )。

字符串有一个 match 方法,它接受正则表达式( 文档 )。

尝试将此行:

 if (reqUA.matches('curl').true) {

更改为:

if (requUA !== null && reqUA.match(/curl/)) {

另一个问题是 Response 类没有 redirect 方法( 文档 )。

尝试将此行:

return Response.redirect(newLocation, 302)

更改为:

return new Response(undefined, {
  status: 302,
  statusText: 'Found',
  headers: {
    Location: newLocation
  }
});
Jeremy Danyow
2018-12-13

我知道这已经过时了,OP 可能已经修复了这个问题,但为了提供答案...

问题出在这部分:

async function doRedirects(request) {
    let reqUA = req.headers.get('user-agent')

在这里,当请求变量是 request 时,您使用的是 req.headers 。因此,您应该使用 request.headers

Cjmarkham
2021-12-30