winjs.xhr的认识

winjs.xhr是windows store app中封装xmlhttpwebrequest的一个promise object,可以cross domain,出于安全不能访问本地和局域网的service。

下面例子是一个使用的demo:

var feedItems = [];


    function loadBlogFeedsFromWebAsXML() {

        var feedUrl = "http://blogs.msdn.com/b/windowsstore/rss.aspx";

        WinJS.xhr({ url: feedUrl }).then(
        function (result) {

            var xmlDoc = new Windows.Data.Xml.Dom.XmlDocument();
            xmlDoc.loadXml(result.responseText);

            var nodes = xmlDoc.selectNodes("//item");

            var items = new Array();

            nodes.forEach(function (val, idx, travObj) {

                var title = val.selectSingleNode("title").innerText;
                var description = val.selectSingleNode("description").innerText;
                var link = val.selectSingleNode("link").innerText;

                var newItem = {
                    title: title,
                    summary: description,
                    uri: link
                };

                items.push(newItem);
            });

            DataUtils.feedItems = items;


            // Call other function which can use the DataUtils.feedItems to bind UI elements
            //做想要在winjs.xhr中想做的事情,不要在函数外面去做,这就是异步编程:)

        },
        function (err) {
        }
        );

        return DataUtils.feedItems;
    }





    WinJS.Namespace.define(
        "DataUtils", {
            feedItems: feedItems
        }
        );

下面demo是向webservice中post json的例子:

 function CallData() {
        var person = { 'Name': 'Name'};
        WinJS.xhr({
            type: "POST",
            url: "http://www.xxx.com/WebService.asmx/method",
            headers: { "Content-type": "application/json" },
            data: JSON.stringify(person)
        }).then(function complete(request) {
            var resdata = request.responseText;
        }, function error(er) {
            var err = er.statusText;
        });
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值