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

Apigee策略中JavaScript修改变量失效:offsetValue始终为空

问题原因与解决办法

你的问题出在用错了政策:AssignMessage的<Set><Payload>是用来定义HTTP消息的负载内容的,里面的JavaScript代码只会被当作普通字符串存入payload,并不会被执行,所以offsetValue根本没被初始化,后续引用自然为空。

方案1:使用JavaScript政策执行变量赋值

替换掉你的AssignMessage,改用专门的JavaScript政策来设置变量:

<AssignVariable>
    <Name>data.request.offset</Name>
    <Value>0</Value>
</AssignVariable>
<JavaScript name="JS-Set-OffsetValue">
    <Source>
        context.setVariable("offsetValue", 50);
    </Source>
</JavaScript>
<AssignVariable>
    <Name>data.request.offset</Name>
    <Value ref="offsetValue" />
</AssignVariable>

方案2:直接用AssignVariable简化流程

如果只是固定值赋值,完全不需要JavaScript,直接用AssignVariable一步到位:

<AssignVariable>
    <Name>data.request.offset</Name>
    <Value>0</Value>
</AssignVariable>
<AssignVariable>
    <Name>offsetValue</Name>
    <Value>50</Value>
</AssignVariable>
<AssignVariable>
    <Name>data.request.offset</Name>
    <Value ref="offsetValue" />
</AssignVariable>

这两种方式都能正确设置offsetValue,让后续的AssignVariable成功引用到它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:55:54