You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JWT插件调用WordPress API获取Token时Promise持续pending

问题描述

使用JWT插件对接WordPress API发布内容时遇到异常:已按JWT插件官方文档指引完成全部配置,定义了auth secret key,也完成了.htaccess文件修改,但调用接口时始终得到处于pending状态的Promise,实现代码如下:

fetch('https://mangareadhere.xyz/wp-json/jwt-auth/v1/token',{
    method: "POST",
    headers:{
        'Content-Type': 'application/json',
        'accept': 'application/json',
    },

    body:JSON.stringify({    
        "username": username, 
    "password": password

    })
    }).then(function(response){
        return response.json()
    }).then(function(user){
        console.log(user.token)
        localStorage.setItem('jwt', user.token)
    });
}

按文档说明尝试获取用户Token时,Promise始终卡住无法返回结果。

解决排查步骤
  • 首先补全请求的错误捕获与状态判断逻辑:现有代码没有异常捕获分支,也没有判断HTTP响应状态,请求出错时不会抛出明确提示,只会表现为无响应。先替换为带错误处理的代码,在控制台查看具体报错信息:
fetch('https://mangareadhere.xyz/wp-json/jwt-auth/v1/token',{
    method: "POST",
    headers:{
        'Content-Type': 'application/json',
        'accept': 'application/json',
    },
    body:JSON.stringify({    
        "username": username, 
        "password": password
    })
}).then(function(response){
    if (!response.ok) {
        return response.text().then(errText => {
            throw new Error(`HTTP错误 ${response.status}: ${errText}`)
        })
    }
    return response.json()
}).then(function(user){
    console.log(user.token)
    localStorage.setItem('jwt', user.token)
}).catch(function(err) {
    console.error('Token请求失败:', err)
})
  • 排查跨域(CORS)问题:打开浏览器开发者工具的Network面板,找到对应的token请求,如果控制台出现CORS相关报错,说明服务端没有配置正确的跨域响应头。WordPress和JWT插件默认不自带跨域处理,需要在服务端配置允许你的前端域名访问/wp-json路径,同时放行OPTIONS方法的预检请求。
  • 确认Web服务规则生效:如果站点用的是Nginx而非Apache,修改.htaccess文件完全不会生效,需要把JWT插件要求的重写规则写到Nginx对应的站点配置文件中,重载Nginx服务后再测试;如果是Apache环境,确认.htaccess文件存放在WordPress安装根目录,且Apache开启了rewrite模块。
  • 校验JWT密钥配置位置:确认JWT_AUTH_SECRET_KEY常量定义在wp-config.php文件中,且位置在/* That's all, stop editing! Happy publishing. */注释行之前,写在该行之后的配置不会被WordPress加载。
  • 排查安全拦截规则:临时关闭WordPress安装的安全类插件(如Wordfence、防注入插件),检查服务器WAF、防火墙规则,确认没有拦截向/wp-json/jwt-auth/v1/token路径发送的POST请求。

内容的提问来源于stack exchange,提问作者Webnair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 12:03:23