• 关于WebApi 跨域问题的解决的方式


    最近在做WebApi 进行开发的时候 一直会遇到跨域方面的问题那么如何进行跨域问题其实非常的简单。

    1.一直在使用WebApi的时候总是遇到跨域的问题 那么 什么是跨域?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

    注:解决web API跨域其实比较简单,如果可以的话,如下的修改header即可,但是还是存在很多陷阱。首先必须保证做的更改API重新发布新的文件覆盖原有文件。我们一直调不通,就是因为发布文件中的配置并没有发生改变。另外使用Ajax调用的时候不能添加ContentType的配置。
    同时使用服务端的CORS和客户端jQuery.support.cors = true;就可以解决所有的问题了。
    另外一个Get和Post之外的HttpMethod我是用参数传进去的,因为有些浏览器不支持。

    有的就是 CORS 跨域

    让mvc  或者 webapi 支持CORS跨域的配置是:
    在system.webServer节点上添加
    <httpProtocol>
    <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Max-Age" value="30"/>
    <add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/>
    <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
    </customHeaders>
    </httpProtocol>

    2. 服务端需要进行添加

    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials","true");

    客户端的jQuery:
    $.ajax({
    ...
    xhrFields: { //允许跨域访问是添加cookie
    withCredentials: true
    },
    ...

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案。
    通过自己的研究以及在网上看了一些大神的博客,写了一个Demo
    首先新建一个webapi的程序,如下图所示:

    再牛逼的梦想,也抵不住我傻逼似的坚持!别在该奋斗的年纪,贪图安逸。 今天多学一些知识,明天开发的速度就更快一下。后天你就会变得更好。
  • 相关阅读:
    接口 多态
    继承extends (特点、重写、覆盖、应用)抽象abstract(定义、特点、细节)
    0515 面向对象 类与对象、局部、成员变量、基本、引用类型、封装 private 和this 及应用
    Eclipse 快捷键
    Flutter Framework启动代码阅读
    Flutter Widget概览
    Flutter局部状态管理
    iconfont应用
    implicit_animations.dart阅读
    Flutter异常搜集方案
  • 原文地址:https://www.cnblogs.com/LowKeyCXY/p/7002224.html
Copyright © 2020-2023  润新知