您的位置:首页 > Web前端 > JQuery

跨域Ajax请求(jQuery JSONP MVC)

2014-01-24 16:21 519 查看
通过jQuery的$.ajax方法发送JSONP请求

js代码

<script type="text/javascript">
function jsonptest2(result) {//jsonptest2必须是全局唯一的方法
alert(result.Age + " " + result.Email);//28 tom@tom.com
}

$.ajax({
type: "GET",
url: "http://localhost:2528/Default2/JsonAuction/1",//跨域
dataType: "jsonp",
jsonpCallback: "jsonptest2"
});
</script>


MVC中C#代码,即请求http://localhost:2528/Default2/JsonAuction/1

public class Default2Controller : Controller
{
public ActionResult JsonAuction(int id)
{
Person p = new Person() {Age=28,Email="tom@tom.com" };//模拟数据Person类见下面
return  = new JsonpResult() { Data=p};
}
}
  //自定义返回类型
public class JsonpResult : JsonResult
{
public string Callback { get; set; }
public JsonpResult()
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet;
}

public override void ExecuteResult(ControllerContext context)
{
var httpContext = context.HttpContext;
var callback = Callback;
if (string.IsNullOrWhiteSpace(callback))
{
callback = httpContext.Request["callback"];
}
httpContext.Response.Write(callback);
httpContext.Response.Write("(");
base.ExecuteResult(context);
httpContext.Response.Write(");");

}
}

public class Person
{
public int Age
{
get;
set;
}
public string Email
{
get;
set;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: