zoukankan      html  css  js  c++  java
  • XMLHttpRequest

    服务端代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Script.Serialization;
    
    
    namespace SoccerWeb
    {
        /// <summary>
        /// ScoreHandler 的摘要说明
        /// </summary>
        public class ScoreHandler : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/json;charset=UTF-8"; // "text/plain";
                context.Response.AddHeader("Access-Control-Allow-Origin", "*");
                context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
    
                JavaScriptSerializer json = new JavaScriptSerializer();
                Order p1 = new Order();
                p1.Name = "aa";
                p1.Age = 12;
    
                Order p2 = new Order();
                p2.Name = "bb";
                p2.Age = 12;
    
                string str = json.Serialize(new List<Order>() { p1, p2 });
    
                context.Response.Write(str);
                context.Response.End();
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    

      

    客户端:

    var winSize = null;
    
    var XhrLayer = cc.Layer.extend({
        ctor:function () {
            if (!this._super()) {
                return false;
            }
            return true;
    
            this.onEnter();
        },
    
        onEnter: function() {
            this._super();
            var l = cc.LabelTTF.create("Get infos via XHR", "Thonburi", 16);
            this.addChild(l, 1);
            l.x = cc.director.getWinSize().width / 2;
            l.y = cc.director.getWinSize().height - 60;
    
            this.sendGetRequest();
            this.sendPostRequest();
    
            var l2 = cc.LabelTTF.create("Get infos via XHR2", "Thonburi", 16);
            this.addChild(l, 1);
            l2.x = cc.director.getWinSize().width / 2;
            l2.y = cc.director.getWinSize().height - 80;
        },
    
        sendGetRequest: function() {
            var that = this;
            var xhr = cc.loader.getXMLHttpRequest();
            var statusGetLabel = cc.LabelTTF.create("Status:", "Thonburi", 18);
            this.addChild(statusGetLabel, 1);
            statusGetLabel.x = cc.director.getWinSize().width / 2;
            statusGetLabel.y = cc.director.getWinSize().height - 100;
            statusGetLabel.setString("Status: Send Get Request to httpbin.org");
            
            xhr.open("GET", "http://172.18.65.100:8080/SoccerWeb/ScoreHandler.ashx");
    
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var httpStatus = xhr.statusText;
                    var response = xhr.responseText.substring(0, 50) + "...";
                    var responseLabel = cc.LabelTTF.create("GET Response (50 chars): 
    " + response, "Thonburi", 16);
                    that.addChild(responseLabel, 1);
                    responseLabel.anchorX = 0;
                    responseLabel.anchorY = 1;
                    responseLabel.textAlign = cc.TEXT_ALIGNMENT_LEFT;
    
                    responseLabel.x = cc.director.getWinSize().width / 6;
                    responseLabel.y = cc.director.getWinSize().height / 2;
                    statusGetLabel.setString("Status: Got GET response! " + httpStatus);
                }
            };
            xhr.send();
        },
    
        sendPostRequest: function() {
            var that = this;
            var xhr = cc.loader.getXMLHttpRequest();
            var statusPostLabel = cc.LabelTTF.create("Status:", "Thonburi", 18);
            this.addChild(statusPostLabel, 1);
    
            statusPostLabel.x = cc.director.getWinSize().width / 2;
    
            statusPostLabel.y = cc.director.getWinSize().height - 140;
            statusPostLabel.setString("Status: Send Post Request to httpbin.org");
    
            
            xhr.open("POST", "http://172.18.65.100:8080/SoccerWeb/ScoreHandler.ashx");
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var httpStatus = xhr.statusText;
                    var response = xhr.responseText.substring(0, 50) + "...";
                    var responseLabel = cc.LabelTTF.create("POST Response (50 chars):  
    " + response, "Thonburi", 16);
                    that.addChild(responseLabel, 1);
                    responseLabel.anchorX = 0;
                    responseLabel.anchorY = 1;
                    responseLabel.textAlign = cc.TEXT_ALIGNMENT_LEFT;
    
                    responseLabel.x = cc.director.getWinSize().width / 2;
                    responseLabel.y = cc.director.getWinSize().height / 2;
                    statusPostLabel.setString("Status: Got POST response! " + httpStatus);
                }
                else
                {
                    cc.log(xhr.statusText);
                }
            };
            xhr.send("test=ok");
        }
    });
    
    var XhrScene = cc.Scene.extend({
        onEnter:function () {
            this._super();
            this.addChild(new XhrLayer());
        }
    });
    

      客户端打包后无法使用XMLHttpRequest,只能在网页版本中用

  • 相关阅读:
    iOS 3D 之 SceneKit框架Demo分析
    MVC 之Action
    ASP.NET MVC 路由机制
    数据库一对一,一对多,多对多关系
    jquery选择器(原创)<四>
    jquery选择器(原创)<三>
    jquery选择器(原创)<二>
    jquery选择器(原创)
    Jquery对象,DOM对象
    JQuery选择器
  • 原文地址:https://www.cnblogs.com/linn/p/3675010.html
Copyright © 2011-2022 走看看