ajax 跨域访问web api,web api 解决Ajax请求跨域问题

前端ajax请求接口时,经常出现跨域问题,当然了解决方法有很多种,比如:

我本人恰好前后端都会一点,所以直接在接口端处理。 我用的是mvc 开发的接口 可以在web API 的根目录添加一个属性就OK了。 代码如下:

public class CrossSiteAttribute: System.Web.Http.Filters.ActionFilterAttribute

{

private string originHeaderdefault = "http://www.abc.com";

//默认的构造函数允许 "http://www.abc.com"域名下调用接口

public CrossSiteAttribute() {

}

public CrossSiteAttribute(string originHeader )

{

if (!string.IsNullOrEmpty(originHeader)) {

originHeaderdefault = originHeader;

}

}

private const string Origin = "Origin";

///

/// Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。

///

private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin" ;

///

/// originHeaderdefault的值可以使 URL 或 *,如果是 URL 则只会允许来自该 URL 的请求,* 则允许任何域的请求

///

///

/// 该方法允许api支持跨域调用

///

/// 初始化 System.Web.Http.Filters.HttpActionExecutedContext 类的新实例。

public override void OnActionExecuted( HttpActionExecutedContext actionExecutedContext)

{

actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault);

}

}

### 调用很简单

[HttpPost]

[CrossSite("http://www.bbb.com")]

public Response RemovePC(Model model)

{

//你的代码

}

### 还有一种方式 ,就是直接在web.config里添加节点 的方式解决,就是在 节点下添加。

这种方式简单,没有安全性可言,所以得网站都可以访问你的接口。写死连接,灵活性有点差,又不利于拓展,建议使用上面的那种方式。

解决ajax请求跨域

跨域大部分需要通过后台解决,引起跨域的原因: 3个问题同时满足 才可能产生跨域问题,即跨域(协议,主机名,端口号中有一个不同就产生跨域) 下面是解决方法 方法一 // ajax请求跨域 /* *解决a ...

解决Ajax请求跨域问题

from:https://blog.csdn.net/wang379275614/article/details/53333775 上篇文章提到,由于浏览器的同源策略,使得,AJAX请求只能发给同源的 ...

nginx配置 解决ajax请求跨域问题

文章来源:http://to-u.xyz/2016/06/30/nginx-cors/ 背景描述 最近在研究RESTful API接口设计,使用的是Nginx,要实现本地http://127.0.0. ...

cors解决ajax请求跨域问题

Access-Control-Allow-Origin: * 适用tomcat部署的项目 在web.xml里添加以下内容 CorsF ...

基于JWT的web api身份验证及跨域调用实践

随着多终端的出现,越来越多的站点通过web api restful的形式对外提供服务,很多网站也采用了前后端分离模式进行开发,因而在身份验证的方式上可能与传统的基于cookie的Session Id的 ...

day78_淘淘商城项目_11_单点登录系统实现 + 用户名回显 + ajax请求跨域问题详解_匠心笔记

课程计划 1.SSO注册功能实现 2.SSO登录功能实现 3.通过token获得用户信息 4.ajax跨域请求解决方案--jsonp 1.服务接口实现   SSO系统就是解决分布式环境下登录问题的,本 ...

Web Api 利用 cors 实现跨域

一.安装 cors 二.修改 Web.config

处理Ajax请求跨域问题

ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resourc ...

解决Ajax不能跨域的方法

1.  Ajax不能跨域请求的原因 同源策略(Same Origin Policy),是一种约定,该约定阻止当前脚本获取或者操作另一个域下的内容.所有支持Javascript的浏览器都支持同源策略,也 ...

随机推荐

重建Windows 8的图标缓存

Windows 8的图标缓存路径与Win7不同,重置方法如下: rem 关闭explorer.exe taskkill /f /im explorer.exe attrib -h -i %userpr ...

power designer 连接数据库提示“connection test failed”

利用powerdesigner反向生成表结构时,需要mysql连接,配置好连接,测试时直接报:connection test failed”! OS:WIN7 旗舰版 64位 JDK: 64位 Pow ...

cocos2d-x 3.0版本已经加了socket部分

cocos2d-x开发者的福音到了,在3.0版本中新增了HttpClient.HttpRequest.SocketIO.Websocket库,需要网络交互的同学应该可以用到,并且它已经与cocos2d ...

Ray Tracing

Ray Tracing 题目链接:http://codeforces.com/problemset/problem/724/C 拓展欧几里得 //为什么这次C题这么难啊=.= 可以观察到,光线在矩形中 ...

synchronized(this) 与synchronized(class) 之间的区别

一.概念 synchronized 是 Java 中的关键字,是利用锁的机制来实现同步的. 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机 ...

2017-12-20python全栈9期第五天第二节之字典的增删查改和字典的for循环

#!/user/bin/python# -*- coding:utf-8 -*-dic1 = {'age':24,'name':'zd','sex':'boy'}print(dic1)#增dic1[' ...

[Node.js] 02 - Read Eval Print Loop

视频课程:带你入门Nodejs,提及了非常多的后端知识点 发布时间: 2017年10月7日 课程时长:193 分钟 类别:后端 课时:22 npm Resource: npm模块管理器[阮一峰] np ...

要显示的联系人——>;自定义-bug

自定义中将“电话”下的“所有联系人”不勾选,但是Contacts列表还是显示PHONE联系人. SELECT _id, display_name, agg_presence.mode AS conta ...

Linux基础命令---split

split 将一个大文件切割成较小的文件,默认情况下每1000行就会切割一次.分割后的文件,默认以xaa.xab.xac等命名.用户亦可以指定名字的前缀,例如指定前缀test,那么分割后的文件是tes ...

第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库

SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...

你可能感兴趣的:(ajax,跨域访问web,api)