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

SAPUI5开发中MessageToast与MessageBox未定义报错求助

UI5开发问题排查:MessageToast/MessageBox未定义 + ECONNREFUSED 127.0.0.1:80

在本地VS Code及BAS试用版搭建UI5开发环境,使用1.48.0版本创建无数据源的自由风格项目。添加按钮后在控制器引入sap/m/MessageToast与sap/m/MessageBox,点击按钮时出现**"MessageToast/MessageBox未定义"报错,同时控制台提示"connect ECONNREFUSED 127.0.0.1:80"**错误,需排查问题。

相关代码如下:

View代码

<mvc:View controllerName="testproject.controller.Test123"
    xmlns:mvc="sap.ui.core.mvc" displayBlock="true"
    xmlns="sap.m">
    <Page id="page" title="{i18n>title}">
        <content>
            <Button id="test" text="Press Button" press="onClick"/>
        </content>
    </Page>
</mvc:View>

Controller代码(原错误版本)

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/m/MessageToast",
    "sap/m/MessageBox"
    ],
    /**
     * @param {typeof sap.ui.core.mvc.Controller} Controller
     */
    function (Controller) {
        "use strict";

        return Controller.extend("testproject.controller.Test123", {
            onInit: function () {

            },
            onClick: function() {
                //MessageToast.show("Test");
                MessageBox.information("Test2");
            }
        });
    });

问题分析与修复

1. "MessageToast/MessageBox未定义" 错误原因及修复

控制器的sap.ui.define依赖数组中已声明MessageToast和MessageBox,但在factory函数的参数列表里只接收了Controller,未对应传入这两个模块的引用,导致函数内部无法访问这两个变量。

修复后的Controller代码:

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/m/MessageToast",
    "sap/m/MessageBox"
    ],
    /**
     * @param {typeof sap.ui.core.mvc.Controller} Controller
     * @param {typeof sap.m.MessageToast} MessageToast
     * @param {typeof sap.m.MessageBox} MessageBox
     */
    function (Controller, MessageToast, MessageBox) { // 添加对应参数与依赖顺序匹配
        "use strict";

        return Controller.extend("testproject.controller.Test123", {
            onInit: function () {

            },
            onClick: function() {
                MessageToast.show("Test");
                MessageBox.information("Test2");
            }
        });
    });

2. "connect ECONNREFUSED 127.0.0.1:80" 错误排查方向

  • 本地服务未启动:确保已通过ui5 serve或项目自带启动命令启动UI5本地服务,默认端口通常为8080而非80,若项目配置了访问80端口的资源,需检查服务端口是否匹配。
  • 资源路径配置错误:检查manifest.json中sap.ui5.resourceRoots的配置,确认没有错误指向本地80端口的资源路径。
  • 代理配置问题:若项目依赖外部资源,检查代理配置是否错误指向本地80端口,导致请求失败。
  • BAS环境配置:在BAS试用版中,确认项目运行配置是否正确,是否存在端口映射或网络访问限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:55:20