.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;
}