服务端是用vs2013里WCF做的REST风格的web service。
客户端是用jquery+ajax访问web service。
参考 http://www.topwcftutorials.net/2014/01/crud-wcf-restful-service.html。
调试中发生跨域访问错误,试了很多方法,终于解决。
参考 https://www.codeproject.com/Articles/845474/Enabling-CORS-in-WCF。
解决方法就是增加两个文件, Global.asax 和 Global.asax.cs。
Global.asax 就一句话:
<%@ Application Codebehind=“Global.asax.cs” Inherits=“Wcf.App.Global” Language=“C#” %>
Global.asax.cs 内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace Wcf.App
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
//HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, PUT, DELETE");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}
博客讲述服务端用VS2013里WCF做REST风格的web service,客户端用jquery+ajax访问。调试时出现跨域访问错误,经尝试多种方法后解决,解决办法是增加Global.asax和Global.asax.cs两个文件,并给出了Global.asax的内容及Global.asax.cs的引用代码。

2319

被折叠的 条评论
为什么被折叠?



