Tag: cors

asp.net Webforms 端点上的CORS端点

我正在尝试将一些[WebMethod]注释的端点函数添加到Webforms样式的Web应用程序(.aspx和.asmx)。 我想用[EnableCors]注释这些端点,从而获得所有良好的ajax-preflightfunction。 VS2013接受注释,但端点仍然不能与CORS一起使用。 (它们在使用同源而非交叉原点时工作正常)。 我甚至不能让它们与下来和脏的交叉起源 HttpContext.Current.Response.AppendHeader(“Access-Control-Allow-Origin”, “*”); 方法 – 我的浏览器拒绝响应,并且不显示跨源响应标头。 如何在这些[WebMethod]端点中获取CORSfunction?

WCF错误:405方法不允许

坚持这个问题。 我有一个包含2个项目的解决方案,其中一个是带有jquery ajax调用的普通旧html,而另一个是WCF服务。 html页面将发出对WCF服务的ajax调用以获取json字符串并将其用于显示目的。 现在的问题是每当我在调试模式下运行时,html页面和WCF都将以不同的端口启动。 当我执行测试时(即在Firefox中调用类型= OPTIONS获得405 Method Not Allowed错误),这为我创建了一个跨源问题。 我会在我的ajax脚本上检查调用方法,并且WCF服务是相同的(GET)。 我搜索谷歌但发现要么我必须安装扩展程序或在IIS上执行一些配置,我发现这很麻烦,因为我正在做的事情很简单。 下面是一个例子,我将在web.config中添加以下配置,但它不起作用: 任何人都有任何想法摆脱这个恼人的问题? 编辑:只是添加,我正在使用与VS Studio 2012一起提供的IIS Express运行调试 添加WCF代码并更新web.config [ServiceContract] public interface IMemberInfo { [WebInvoke(Method = “GET”, BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json )] [OperationContract] string GetMemberInfoById(); // TODO: Add your service operations here } 我的剧本: $(document).ready(function () { $.ajax(“http://localhost:32972/SimpleMemberInfo.svc/GetMemberInfoById”, { cache: false, beforeSend: function […]

WCF REST服务中的CORS支持

我在Windows服务中托管了WCF REST服务,并且我希望每次响应都发送Access-Control-Allow-Origin HTTP标头(定义为CORS的一部分)。 我尝试的解决方案是在IDispatchMessageInspector实现中使用以下内容: public void BeforeSendReply(ref Message reply, object correlationState) { var httpResponse = reply.Properties[“httpResponse”] as HttpResponseMessageProperty; if (httpResponse != null) { // test of CORS httpResponse.Headers[“Access-Control-Allow-Origin”] = “*”; } } 通常这会起作用,但不幸的是我的服务也使用HTTP基本授权 ,这意味着当请求进入而没有Authorization标头时,WCF会自动发送401响应,要求提供凭据。 遗憾的是,在此初始交换期间,WCF不会调用我的IDispatchMessageInspector,因此Access-Control-Allow-Origin标头不会添加到初始交换中。 当我尝试从浏览器调用服务时,会出现此问题。 CORS指定仅当源域与Access-Control-Allow-Origin响应头中列出的域匹配时才允许跨源请求(*匹配所有域)。 不幸的是,当浏览器看到没有Access-Control-Allow-Origin标头的初始401响应时,它会阻止访问(根据相同的源策略 )。 有没有办法在WCF自动发送的初始401响应中添加标头?