js跨域
来源:互联网 发布:服务器的8080端口 编辑:程序博客网 时间:2024/05/09 23:23
跨域取数据:
$.ajax({ type: "get", url:url, dataType: "jsonp", jsonp: "jsoncallback", contentType: "application/json; charset=utf-8", data: { Action: "QueryWscList", pageIndex: "1", pageSize: "10", where: "1=1" }, success: function (data) { alert(JSON.stringify(data)); } });
处理程序:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Newtonsoft.Json;using jxcproject.Business.Model;using jxcproject.Service.Site.Imp;using jxcproject.Service.Tools;using jxcproject.Service.Model;namespace jxcproject.dashengo.Web.Interface{ public partial class WscHandler : System.Web.UI.Page { string json = ""; protected void Page_Load(object sender, EventArgs e) { Response.Clear(); WebFormHandler.Origin(); string Action=Request["Action"]; switch (Action){ case "QueryWscList": QueryWscList(); break; } WebFormHandler.AjaxWrite("(" + json + ")"); Response.End(); } public void QueryWscList() { int recordCount = 0; AjaxResultEntity result = new AjaxResultEntity(); List<WSCOpenWsc> lt = new WSCOpenWscServer().QueryList(Convert.ToInt32(Request["pageIndex"]), Convert.ToInt32(Request["pageSize"]),StringHelper.SqlSafe(Request["where"]), out recordCount); result.Msg = recordCount.ToString(); result.IsSuccess = true; result.Data = lt; json=JsonConvert.SerializeObject(result); } }}辅助类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;using System.IO;using System.Data;using Newtonsoft.Json;using Newtonsoft.Json.Converters;using System.Collections;namespace jxcproject.Service.Tools{ public class WebFormHandler { /// <summary> /// 上传文件 /// </summary> /// <returns></returns> public static ArrayList SaveFiles(string filePath,string newFileName) { ///'遍历File表单元素 HttpFileCollection files = HttpContext.Current.Request.Files; ArrayList list = new ArrayList(); try { for (int i = 0; i < files.Count; i++) { ///'检查文件扩展名字 HttpPostedFile postedFile = files[i]; string fileExtension=System.IO.Path.GetExtension(postedFile.FileName); string fileName = newFileName + fileExtension; if (fileName != "") { ///注意:可能要修改你的文件夹的匿名写入权限。 postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(filePath) + fileName); } list.Add(fileName); } list.TrimToSize(); return list; } catch (System.Exception ex) { throw ex; } } /// <summary> /// 显示状态 /// </summary> /// <param name="state"></param> /// <returns></returns> public static string StateView(bool state) { if (state) return string.Format("<font color=\"red\">{0}</font>", "√"); else return "×"; } /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string GetUrltoHtml(string Url) { string html = ""; Uri uri = new Uri(Url); System.Net.HttpWebRequest wReq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(uri); System.Net.HttpWebResponse wResp = (System.Net.HttpWebResponse)wReq.GetResponse(); using (System.IO.Stream respStream = wResp.GetResponseStream()) { using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("UTF-8"))) { html = reader.ReadToEnd(); } } return html; } /// <summary> /// 根据文件名和url创建静态文件 /// </summary> /// <param name="fileName">静态文件名,不带后缀名,后缀名为htm</param> /// <param name="url">带域名的url</param> public static void CreateHMTLFile(string fileName,string url) { string pathFile = HttpContext.Current.Server.MapPath("~/" + fileName + ".htm"); string html = GetUrltoHtml(url); if (!File.Exists(pathFile)) { using (FileStream fs = File.Create(pathFile)) { using (StreamWriter sw = new StreamWriter(fs)) { sw.Write(html); } } } else { using (StreamWriter sw = new StreamWriter(pathFile)) { sw.Write(html); } } } /// <summary> /// 将实体类转成Json格式,实体类的属性在对应前台,区分大小写 /// </summary> /// <param name="o">任何定义的实体类</param> /// <returns>json字符串</returns> public static string ModelConvertJson(Object o) { IsoDateTimeConverter datetimeConvert = new IsoDateTimeConverter(); datetimeConvert.DateTimeFormat = "yyyy-MM-dd"; string json = JsonConvert.SerializeObject(o,Formatting.Indented,datetimeConvert); return json; } /// <summary> /// 将Datatabel转成json格式 /// </summary> /// <param name="dt">DataTabel对象</param> /// <param name="tableName">Table名称</param> /// <returns>json字符串</returns> public static string CreateJsonParameters(DataTable dt,string tableName,string dateFormat) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jw = new JsonTextWriter(sw)) { JsonSerializer ser = new JsonSerializer(); IsoDateTimeConverter datetimeConvert = new IsoDateTimeConverter(); datetimeConvert.DateTimeFormat = dateFormat; ser.Converters.Add(datetimeConvert); jw.Formatting = Formatting.Indented; jw.WriteStartObject(); jw.WritePropertyName(tableName); jw.WriteStartArray(); foreach (DataRow dr in dt.Rows) { jw.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { //将列名转成小写的原因是因为在Ext Template中Id不被Exj识别 jw.WritePropertyName(dc.ColumnName.ToLower()); //此处dr[dc]不能加toString(),因为这样日期就不能转成想要的格式 ser.Serialize(jw, dr[dc]); } jw.WriteEndObject(); } jw.WriteEndArray(); jw.WriteEndObject(); sw.Close(); jw.Close(); } return sb.ToString(); } public static string CreateJsonParameters(DataTable dt, string tableName) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jw = new JsonTextWriter(sw)) { JsonSerializer ser = new JsonSerializer(); IsoDateTimeConverter datetimeConvert = new IsoDateTimeConverter(); datetimeConvert.DateTimeFormat = "yyyy-MM-dd"; ser.Converters.Add(datetimeConvert); jw.Formatting = Formatting.Indented; jw.WriteStartObject(); jw.WritePropertyName(tableName); jw.WriteStartArray(); foreach (DataRow dr in dt.Rows) { jw.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { //将列名转成小写的原因是因为在Ext Template中Id不被Exj识别 jw.WritePropertyName(dc.ColumnName.ToLower()); //此处dr[dc]不能加toString(),因为这样日期就不能转成想要的格式 ser.Serialize(jw, dr[dc]); } jw.WriteEndObject(); } jw.WriteEndArray(); jw.WriteEndObject(); sw.Close(); jw.Close(); } return sb.ToString(); } /// <summary> /// 将dataTable转成XML格式 /// </summary> /// <param name="dt">DataTabel对象</param> /// <returns>xml字符串</returns> public static string CreateXMLParameters(DataTable dt) { StringBuilder xmlstring = new StringBuilder(); xmlstring.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); xmlstring.Append("<"+dt.TableName+">"); for (int i=0;i<dt.Rows.Count;i++) { xmlstring.Append("<rows>"); for (int j = 0; j < dt.Columns.Count; j++) { xmlstring.Append("<"+dt.Columns[j].ColumnName+">"); xmlstring.Append("<![CDATA["+dt.Rows[i][j].ToString()+"]]>"); xmlstring.Append("</"+dt.Columns[j].ColumnName+">"); } xmlstring.Append("</rows>"); } xmlstring.Append("</"+dt.TableName+">"); return xmlstring.ToString(); } /// <summary> /// 支持跨域请求 /// </summary> /// <param name="context"></param> public static void Origin() { string callBackName = HttpContext.Current.Request.Params["jsoncallback"] == null ? "" : HttpContext.Current.Request.Params["jsoncallback"].ToString(); if (string.IsNullOrEmpty(callBackName)) //此参数如果为空,则表示客户端使用的不是jsonp方式的ajax请求 { HttpContext.Current.Response.ClearHeaders(); string origin = HttpContext.Current.Request.Headers["Origin"]; HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", string.IsNullOrEmpty(origin) ? "*" : origin); string requestHeaders = HttpContext.Current.Request.Headers["Access-Control-Request-Headers"]; HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Headers", string.IsNullOrEmpty(requestHeaders) ? "*" : requestHeaders); HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); } } /// <summary> /// ajax请求返回数据 /// </summary> /// <param name="jsonData"></param> public static void AjaxWrite(string jsonData) { HttpContext.Current.Response.ContentType = "application/json;charset=utf-8"; string callBackName = string.Empty; callBackName = HttpContext.Current.Request.Params["jsoncallback"] == null ? "" : HttpContext.Current.Request.Params["jsoncallback"].ToString(); if (!string.IsNullOrEmpty(callBackName)) //此参数如果为空,则表示客户端使用的不是jsonp方式的ajax请求 { HttpContext.Current.Response.Write(callBackName + "("+jsonData+")"); } else { HttpContext.Current.Response.Write(jsonData); } } }}
0 0
- js跨域
- Js-跨域
- js 跨域
- js 跨域
- js跨域
- js跨域
- js跨域
- Js 跨域
- js跨域
- js跨域
- JS 跨域
- js跨域
- js跨域
- js跨域
- js跨域
- js跨域
- js跨域
- js跨域
- HDFS——如何将文件从HDFS复制到本地
- PHP 直接在共享内存中存储数据集
- ant jar error:Execute failed: java.io.IOException: Cannot run program XXX ${aapt}
- eclipse启动tomcat访问不到主页
- PAT Basic level practice 11
- js跨域
- IOS学习第六篇——代码块(block)
- [前端] grunt入门
- Couldn't load weibosdkcore from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/ap
- (3)PHP 学习笔记进阶篇 from imooc
- QT5.5环境与arm-none-linux-gnueabi 交叉编译环境搭建
- POJ 2155 Matrix (二维树状数组,区间更新,点查找)
- USACO-Section 1.3 Prime Cryptarithm(枚举)
- [JQ权威指南]第十二天:使用Jquery事件改变文本框的样式