以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  用ajax时运行错误如何解决?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134051)

--  作者:royyang
--  发布时间:2019/4/26 8:42:00
--  用ajax时运行错误如何解决?

一个例子

1、在"d:\\web"目录下,建立一个子目录lib,在这个目录建立一个文本文件,文件名为"ajaxform.js",文件内容为:

//异步发送对象
function sendJsonObjectAsyn(){
    var obj=new Object();
    obj.name = "hehui";
    obj.age=39;
    sendAjaxJSON(obj,"json.htm","afterSendJson"); //afterSendJson为发送完成后要执行的对象
}

//异步发送JSON字符串
function sendJsonStringAsyn(){
    var val= \'{"name":"李云龙","age":"36"}\';
    sendAjaxJSON(val,"json.htm","afterSendJson");//afterSendJson为发送完成后要执行的对象
}

//显示服务器返回的数据
function afterSendJson(result){
    document.getElementById("p1").innerHTML=result;
}

2、HttpRequest事件代码:

Select Case e.Path
    Case "test.htm"
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddButtonGroup("form1","btg1",True\'
垂直排列
            .Add("btn1", "
发送jason对象","button").Attribute=""
            .Add("btn2", "
发送jason字符串","button").Attribute=""
        End With
        wb.AppendHTML("<div id=\'p1\' style=\'margin:0.5em\'></div>") \'
插入一个div,用于显示服务器返回的数据
        wb.AppendHTML("<script src=\'./lib/ajaxform.js\'></script>") \'
引入脚本文件
        e.WriteString(wb.Build) \'
生成网页
    Case "json.htm"
        Dim sb As New StringBuilder
        Dim jo As JObject = JObject.Parse(e.PlainText)
        sb.AppendLine("
服务器收到的数据有:<br/>")
        sb.AppendLine("name:" & jo("name").ToString & "<br/>")
        sb.AppendLine("age:" & jo("age").ToString)
       
e.WriteString(sb.ToString)
End
Select




按帮助这个例子测试的时候,浏览器的console显示“Uncaught ReferenceError: sendJsonObjectAsyn is not defined at HTMLButtonElement.onclick ((index):15)”

自己做的项目也是,引用ajax的时候都显示这个,这个如何解决呢?

--  作者:有点蓝
--  发布时间:2019/4/26 10:00:00
--  
ajaxform.js不要使用记事本编辑,下个notepad++。或者在记事本里另存为utf8格式的文件

另外启动项目的时候指定文件目录了没有

HttpServer.Prefixes.Add("http://*/")
HttpServer
.WebPath = "d:\\web"  \'指定静态文件存储位置
HttpServer
.Start()