美文网首页
第五十八章 CSP的常见问题 - HTTP请求失败

第五十八章 CSP的常见问题 - HTTP请求失败

作者: Cache技术分享 | 来源:发表于2022-11-25 08:09 被阅读0次

    第五十八章 CSP的常见问题 - HTTP请求失败

    HTTP请求失败。无法处理超事件。这是什么意思?

    当浏览器试图与CSP broker小程序通信但无法通信时,会发生超级事件错误。这可能与代码或配置有关。要确定问题是否出在代码上,请加载http://localhost:57772/csp/samples/zipcode.csp(其中57772Caché web服务器端口号。如有必要,用实际的web服务器端口替换57772,如果有外部web服务器正在运行(http://localhost/CSP/samples/zipcode.CSP),则省略它,或者如果Caché是远程安装的,则用IP地址或机器名称替换localhost。)

    在邮政编码页面上,单击#SERVER,在邮政编码框中输入邮政编码,如02142,然后按Tab键。如果没有收到超级事件错误,则说明配置正确,并且超级事件错误很可能是由编码错误引起的。

    如果问题看起来与编码有关,那么有两件事需要寻找。在加载页面时,切勿使用#SERVER调用。这包括在<Body>标记的onLoad事件中调用它们,可以直接调用,也可以从onLoad中调用的JavaScript方法调用。它还包括从runat=\“服务器\”代码块的&js<>行中调用它们。如果需要在页面加载时调用方法,请在runat=\“服务器\”块中使用对象脚本语法。

    <script language="cache" runat="server">
        // if method is located in the page or in a class the page inherits from
        d ..mymethod()
        // if class cannot be called using dot syntax
        d ##class(User.MyClass).mymethod()
    </script>
    

    我收到一条错误消息,指出我的例程中的某一行有问题,但我找不到int例程。它在哪里?

    根据当前的设置,在编译CSP页面时可能不会保留源代码。要强制Caché维护此源代码,可以执行以下两种操作之一:

    • 在选中生成的源代码的情况下,从Studio编译CSP页面。在Studio中,单击工具>选项>编译器>常规标志。选中保留生成的源代码复选框。然后,要编译CSP页面,请单击Build>Compile。
    • 使用k标志从终端编译CSP页面以保存生成的源代码。在Terminal,验证是否在正确的名称空间中。(如果没有,请输入:Zn “<namespace>”.)。要编译您的csp页面,输入:Do $System.CSP.LoadPage(“/csp/<namespace>/<pagename>.csp”, “ck”)。例如:
     Do $System.CSP.LoadPage("/csp/samples/james.csp", "ck")
    

    要查找生成的源代码:

    打开Studio并验证是否在正确的名称空间中。单击文件>打开。在“文件类型”列表中,单击“中间例程(*.int).。找到csp.<csp_page_name>.x.INT,其中x是该例程在系列中的编号。大型CSP页面被分成多个INT例程。包含错误的文件的编号显示在最初收到的错误消息中。

    当我运行我的CSP页面时,#(变量)#出现在浏览器中。为什么没有用变量中的数据替换它?

    这表明CSP页面没有被Caché CSP编译器正确解析。确保通过web服务器运行页面,如下所示:http://localhost/csp/<namespace>/page.csp.

    当我尝试加载我的CSP页面时,为什么会收到无效字符错误信息?

    如果不是通过web服务器加载页面,此错误很常见,因为浏览器不知道如何表示CSP语法。如果URL看起来像C:/install-dir/csp/user/mypage.csp,,没有通过web服务器加载。

    URL应该类似于http://localhost:57772/csp/user/mypage.csp or http://localhost/csp/user/mypage.csp.

    这些消息也可能是由于没有正确转换为ObjectScript方法调用的#server()#调用造成的。在浏览器中,右键单击并查看页面的源代码。如果源文件仍然包含#server,则语法可能不正确。请确保其格式正确:#server(..methodname())#

    如果要将字符串传递给方法,它们必须在双引号("")内。一旦CSP页面被编译成HTML,所有的#server()#调用都被转换成对csprunservermethod()的调用。

    为什么我的CSP标签没有被解析?

    web服务器没有正确地将CSP页面传递到CSP网关进行解析。

    CSP记录错误吗?如何增加日志记录,日志在哪里?

    • 如果存在内部错误,如自定义错误页面中的错误,它将被记录到BACK^%ETN错误日志中。如果在此日志中收到与自定义错误页面无关的内部错误,则可能是核心CSP引擎有问题,您应该联系在新选项卡中打开的InterSystems world wide Response Center(WRC)

    • 通过调用用户定义的错误页来记录其他错误,用户可以在该页中添加自己的日志记录功能。

    相关文章

      网友评论

          本文标题:第五十八章 CSP的常见问题 - HTTP请求失败

          本文链接:https://www.haomeiwen.com/subject/mhdffdtx.html