手机版

webapi跨域使用会议的方法示例

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

在之前的项目中,我们设置跨域都是直接在网络。配置中设置的。

这样是可以实现跨域访问的。因为我们这边一般情况下一个webapi会有多个网站、小程序、微信公众号等访问,所以这样设置是没有问题的。但是……如果其中一个网站需要用到甜饼干或者会议的时候,

访问控制允许来源如果还是设置成"*"就会报错,当然是前端报错。数据返回还有饼干/会话都还是能存,但是报错就不爽了啊。

于是,想着整改一下。

先上前端代码。来个页面远程创建交互式、快速动态网页应用的网页开发技术请求去设置会议。啥都没有,就是点按钮,发个请求。标记地方是必须加的

@{ ViewBag .title=' TestSetSession } h2TestSetSession/H2按钮onclick=' Set()'设置session/button @ section Scripts { script src=' http : ~/Scripts/jquery-1。10 .2 .量滴js '/脚本脚本函数Set() { $ .Ajax({ URL : ' http://localhost :1338/API/Test/SetSession?session=1234567fdsdfghjhgfds ',dataType: 'json ',xhrfieldds : {带有凭据: true },crossDomain: true,data: {},type: 'post ',success : function(数据){ alert(数据。message)},error: function () { alert('服务器发生错误!');} });} /script}然后再来个页面,获取上个页面设置的会议。

@{ ViewBag .title=' TestGetSession } h2TestGetSession/H2按钮onclick=' Get()'获取session/button @ section Scripts { script src=' http : ~/Scripts/jquery-1。10 .2 .量滴js '/脚本脚本函数Get() { $ .Ajax({ URL : ' http://localhost :1338/API/Test/GetSession ')、dataType: 'json '、xhrfieldds : {带有凭据: true }、crossDomain: true、data: {}、type: 'get '、success:函数(数据){ alert(' session : '数据。数据。session _ state '、cookie},error: function () { alert('服务器发生错误!');} });} /script}后台代码

1.先允许webapi使用会议

在全球的中加入如下代码

public override void Init(){ post authenticaterequest=mvcapapplication _ post authenticaterequest;基地init();} void mvcapapplication _ post authenticaterequest(对象发送者,事件参数{系统.网络。httpcontext。当前。setsessionstabehavior(系统网络。会话状态。会话状态行为。必需);}2.允许跨域。我这里使用的是微软. AspNet。WebApi.Cors

先安装包,然后在WebApiConfig中加入如下代码。等同于在网络。配置中设置

//允许跨域配置EnableCors(新的enable correct attribute(“*”、“*”);在请求方法上打上[启用证书]标签,特指某一些域名的访问需要饼干/会话

[EnableCors(' http://localhost :6477,http://localhost:6478 ',' *,' *)]公共类测试控制器: API控制器{///摘要///设置session////summary///returns/returns public dynamic SetSession(字符串会话){ HttpContext .当前。响应。添加标题('访问控制-允许-凭据,' true ');//缓存状态HttpContext .当前会话['session_test']=会话;httpookie cookie=new httpookie(' cookie _ test '){ Value=session,Expires=DateTime .现在。添加小时(1)};HttpContext .当前。响应饼干.添加(饼干);返回新的{成功=真,消息='设置会话' };} ///摘要///获取session////summary///returns/returns public dynamic GetSession(){ HttpContext .当前。响应。添加标题('访问控制-允许-凭据,' true ');var session=HttpContext .当前会话[' Session _ test '];HttpCookie _ cookie=HttpContext .当前请求。Cookie[' Cookie _ test '];var cookie=_cookie?价值?'';字符串session_state=session==null?' :会话. ToString();返回新的{成功=真,消息='获取会话',数据=新{ session_state,cookie } }}结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:webapi跨域使用会议的方法示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。