首页 > 代码库 > 解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效

解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效

直接上最后的结果吧

JS:

 1 $.ajax({ 2             type: "GET", 3             async: false, 4             crossDomain: true, 5             url: "www.test.com/TestHandler.ashx", 6             data: { Id: "1"}, 7             dataType: "jsonp", 8             jsonp: "callback", 9             jsonpCallback: "callbackHandler",10             success: function (data) {11                 //success12             },13             error: function (x, status, error) {14                 //error15             }16         });
View Code

服务端(这里我用的是ashx一般处理程序):

 1 public void ProcessRequest(HttpContext context) 2         { 3             JavaScriptSerializer jsonHelper = new JavaScriptSerializer(); 4  5             HttpContext.Current.Response.ContentType = "application/json"; 6             HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); 7             HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, Content-Type,Authorization, Accept, X-Requested-With"); 8             HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); 9 10             var list=数据;11             12             if (string.IsNullOrEmpty(context.Request["callback"]))13             {14                 context.Response.Write(jsonHelper.Serialize(list));15             }16             else17             {18                 context.Response.Write(string.Format("{0}({1})", context.Request["callback"], jsonHelper.Serialize(list)));19             }20         }
View Code

解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效