sendAjaxJSON

一般用户可以忽略本节内容。

Foxtable为WeUI扩展了一个名为"sendAjaxJSON"的函数,用于向服务器发送JSON数据,语法:

sendAjaxJSON(data,url,func,asyn)

data 要发送的数据,可以是一个对象,也可以是一个JSON格式的字符串。
url 接收数据的目标网页。
func 回调函数名,收到服务器返回信息后,会调用此函数进行处理。
asyn 逻辑型,可选参数,是否异步执行,默认为true,如果要同步执行,请设置为false。
注意是true和false,不是True和False。

例如:

sendAjaxJSON(val,"json.htm","afterSendJson")

表示将val(JSON数据或对象)异步发送到页面json.htm,由afterSendJson函数负责处理接收到的数据。

当asyn参数为False,也可以不指定func参数,此时sendAjaxJSON函数将返回一个值,此值就是服务器返回的数据,例如:

var result = sendAjaxJSON(val,"json.htm","",false)

表示将将val(JSON数据或对象)同步发送到页面json.htm,将返回值保存在变量result中。

一个例子

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

//发送JSON对象
function sendJsonObject(){
    var obj=new Object();
    obj.name = "舒淇";
    obj.age=39;
    var result = sendAjaxJSON(obj,"json.htm","",false);
    document.getElementById("p1").innerHTML=result;
}

//发送JSON字符串
function sendJsonString(){
    var val= '{"name":"李云龙","age":"36"}'
    var result = sendAjaxJSON(val,"json.htm","",false);
    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="onclick='sendJsonObject()'"
            .Add("btn2", "
发送jason字符串","button").Attribute="onclick='sendJsonString()'"
        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) '
解析JSON数据
        sb.AppendLine("
服务器收到的数据有:<br/>")
        sb.AppendLine("name:" & jo("name").ToString()  & "<br/>")
        sb.AppendLine("age:" & jo("age").ToString())
       
e.WriteString(sb.ToString())
End
Select

HttpRequest将收到JSON数据以纯文本形式保存在e参数PlainText中,我们需要对其进行解析,参考:解析JSON

此外我们这个例子,直接将服务器返回的数据显示在当前页面中,这个技巧是很实用的,望大家掌握:

 


本页地址:http://www.foxtable.com/mobilehelp/topics/0107.htm