MVC上的jsonp扩展,解决跨域访问问题

前端之家收集整理的这篇文章主要介绍了MVC上的jsonp扩展,解决跨域访问问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

总是有人会遇到跨域问题,然后有个jsonp解决方案,MVC中代码如下:

  1. public class JsonpResult : System.Web.Mvc.JsonResult
  2. {
  3. object data = null;
  4. public JsonpResult()
  5. {
  6. }
  7. public JsonpResult(object data)
  8. {
  9. this.data = data;
  10. }
  11. public override void ExecuteResult(ControllerContext controllerContext)
  12. {
  13. if (controllerContext != null)
  14. {
  15. HttpResponseBase Response = controllerContext.HttpContext.Response;
  16. HttpRequestBase Request = controllerContext.HttpContext.Request;
  17. string callbackfunction = Request["callback"];
  18. if (string.IsNullOrEmpty(callbackfunction))
  19. {
  20. throw new Exception("Callback function name must be provided in the request!");
  21. }
  22. Response.ContentType = "application/x-javascript";
  23. if (data != null)
  24. {
  25. JavaScriptSerializer serializer = new JavaScriptSerializer();
  26. Response.Write(string.Format("{0}({1});",callbackfunction,serializer.Serialize(data)));
  27. }
  28. }
  29. }
  30. }

理论上还可以自己扩展json的解析方式,比如你觉得默认的json解析器太慢什么的。

猜你在找的Json相关文章