.net 에서 jsonp 처리하기

Posted by Albert 3541Day 18Hour 15Min 36Sec ago [2015-08-10]

1. Html스크립트단

<script>

function login() {

var user_id = $("'id").val();

var user_pw = $("'pass").val();

if (user_id =="") {

alert("请输入用户账号!");

$("'id").focus();

return false;

} else if (user_pw=="") {

alert("请输入密码!");

$("'pass").focus();

return false;

} else {

$.ajax({

 url: "http://localhost:9047/Login/GetData",

 data: { ID: user_id,PW: user_pw },

 type: "GET",

 dataType: "jsonp",

 jsonp:"callback",

 success: function (data) {

alert(data);

 }

});

 

// $.getJSON("http://localhost:9047/Login/GetData?ID="+user_id+"&PW="+user_pw+"&callback=?", function (data) {

// // alert(data);

// });

}

}

</script>



2. JsonpResult 클래스 생성

public class JsonpResult : JsonResult

{

        object data = null;


        public JsonpResult()

        {

        }


        public JsonpResult(object data)

        {

            this.data = data;

        }


        public override void ExecuteResult(ControllerContext controllerContext)

        {

            if (controllerContext != null)

            {

                HttpResponseBase Response = controllerContext.HttpContext.Response;

                HttpRequestBase Request = controllerContext.HttpContext.Request;


                string callbackfunction = Request["callback"];

                if (string.IsNullOrEmpty(callbackfunction))

                {

                    throw new Exception("Callback function name must be provided in the request!");

                }

                Response.ContentType = "application/x-javascript";

                if (data != null)

                {

                    JavaScriptSerializer serializer = new JavaScriptSerializer();

                    Response.Write(string.Format("{0}({1});", callbackfunction, serializer.Serialize(data)));

                }

            }

        }

}


3. 사용

[HttpGet]

public JsonpResult MobileCheck(string ID, string PW)

{

            string rst = "FAIL";

            var data = _LoginService.ValifyUser(ID, PW, this.CultureCode);

            if (data != null && !String.IsNullOrWhiteSpace(data.user_id))

            {

                Session.Remove("History");

                rst = "OK";

            }

            JsonpResult result = new JsonpResult(rst);

            return result;

}




LIST

Copyright © 2014 visionboy.me All Right Reserved.