/// <summary> /// 对已处理的消息进行cross加工 /// </summary> /// <param name="msg"></param> public static void DealtMessage(ref Message msg) { try { var ct = ((HttpResponseMessageProperty)msg.Properties["httpResponse"]).Headers["Content-Type"]; if (MimeTypes.Contains(ct)) { if (ct == MimeTypes[0]) { if (!msg.Properties.ContainsKey("WebBodyFormatMessageProperty")) { msg.Properties.Add("WebBodyFormatMessageProperty", new WebBodyFormatMessageProperty(WebContentFormat.Json)); } else if (msg.Properties["WebBodyFormatMessageProperty"] == new WebBodyFormatMessageProperty(WebContentFormat.Xml)) //强制将xml返回值改为json { msg.Properties.Remove("WebBodyFormatMessageProperty"); msg.Properties.Add("WebBodyFormatMessageProperty", new WebBodyFormatMessageProperty(WebContentFormat.Json)); } } var property = new HttpResponseMessageProperty(); property.StatusCode = HttpStatusCode.OK; property.Headers.Add("Content-Type", ct); property.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); property.Headers.Add("Access-Control-Allow-Origin", "*"); property.Headers.Add("Access-Control-Allow-Headers", "Content-Type,X-Requested-With,Accept"); property.Headers.Add("Access-Control-Max-Age", "1728000"); property.SuppressEntityBody = false; property.SuppressPreamble = false; if (msg.Properties.ContainsKey("httpResponse")) { msg.Properties.Remove("httpResponse"); } msg.Properties.Add("httpResponse", property); } } catch (Exception ex) { // Log4NetUtil.WriteErrLog("CrossDomain.DealtMessage", ex); } }
private bool Contains(string sMimeType) { if (string.IsNullOrWhiteSpace(sMimeType)) { return(false); } if (MimeTypes.Contains(sMimeType) || m_oMimeTypesFromExtensions.Contains(sMimeType)) { return(true); } foreach (var s in MimeTypePrefixes) { if (sMimeType.StartsWith(s)) { return(true); } } return(false); } // Contains