跨域调用webapi web端跨域调用webapi
web端跨域调用webapi
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 6 namespace APIApplication.Models7 {8 public class Employees9 { 10 public int? Id { get; set; } 11 public int? DepartmentId { get; set; } 12 public string Name { get; set; } 13 public string Job { get; set; } 14 public string Gender { get; set; } 15 public string PhoneNum { get; set; } 16 public string EmailAdderss { get; set; } 17 public string Address { get; set; } 18 } 19 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 static List< Employees> emps; 2 static EmployeesController() 3 { 4 emps = new List< Employees>(); 5 emps.Add( new Employees { Id = 1, DepartmentId = 1, Name = "张三", Gender = "男" , Job = "ASP.NET工程师" , PhoneNum = "1886 0922483", EmailAdderss = "zhangsan@123.com" , Address = "江苏省苏州市独墅湖大道228号" }); 6 emps.Add( new Employees { Id = 2, DepartmentId = 2, Name = "李四", Gender = "女" , Job = "web前端工程师" , PhoneNum = "1886 0922483", EmailAdderss = "lisi@123.com" , Address = "江苏省苏州市独墅湖大道228号" }); 7 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 public IEnumerable <Employees > Get(int ? id = null )2 {3 return from employee in emps where employee.Id.Equals(id) || string.IsNullOrEmpty(Convert .ToString(id)) select employee;4 }5 public void Post( Employees employee)6 {7 employee.Id = 3;8 emps.Add(employee);9 } 10 public void Put( Employees employee) 11 { 12 emps.Remove(emps.Where(e => e.Id == employee.Id).First()); 13 emps.Add(employee); 14 } 15 public void Delete( int id) 16 { 17 emps.Remove(emps.Where(e => e.Id == id).FirstOrDefault()); 18 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 <script>2 $(document).ready( function () {3 $.ajax({4 type: 'GET',5 url: 'http://localhost:7974/api/employees/get',6 dataType: 'JSON',7 success: function (data) {8 alert( "姓名:" + data[0].Name + " 性别:" + data[0].Gender + " 住址:" + data[0].Address);9 } 10 }); 11 })
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 using System.Web;2 using System.Web.Http.Filters;3 using System.Web.Mvc;4 5 namespace APIApplication6 {7 public class CrossSiteAttribute : System.Web.Http.Filters.ActionFilterAttribute8 {9 private const string Origin = "Origin"; 10 /// <summary> 11 /// Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。 12 /// </summary> 13 private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin" ; 14 /// <summary> 15 /// originHeaderdefault的值可以使 URL 或 *,如果是 URL 则只会允许来自该 URL 的请求,* 则允许任何域的请求 16 /// </summary> 17 private const string originHeaderdefault = "http://192.168.13.7:8002" ; 18 /// <summary> 19 /// 该方法允许api支持跨域调用 20 /// </summary> 21 /// <param name="actionExecutedContext"> 初始化 System.Web.Http.Filters.HttpActionExecutedContext 类的新实例。</param> 22 public override void OnActionExecuted( HttpActionExecutedContext actionExecutedContext) 23 { 24 actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault); 25 } 26 } 27 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 [CrossSite] 2 public IEnumerable<Employees > Get(int ? id = null ) 3 { 4 return from employee in emps where employee.Id.Equals(id) || string.IsNullOrEmpty(Convert .ToString(id)) select employee; 5 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 public class v_employees2 {3 public int? id { get; set; }4 public int? departmentid { get; set; }5 public string name { get; set; }6 public string job { get; set; }7 public string gender { get; set; }8 public string phonenum { get; set; }9 public string emailadderss { get; set; } 10 public string address { get; set; } 11 }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
1 private HttpClient client = new HttpClient ();2 private string url = "http://192.168.13.7:8001/api/employees/get" ;3 4 public async Task< ActionResult> Index()5 {6 ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";7 8 var data = await client.GetAsync(url);9 var employees = data.Content.ReadAsAsync<IEnumerable <v_employees >>(); 10 List< v_employees> emps = employees.Result.ToList(); 11 ViewData[ "employees"] = emps; 12 return View(); 13 }
![](/assets/blank.gif)
![](/assets/blank.gif)
然后在Index页面设置ViewData
在页面里就可以直接使用数据emps了
![](/assets/blank.gif)
![](/assets/blank.gif)
1 @foreach ( var item in emps) 2 { 3 <ul > 4 <li >@ item.name</ li> 5 <li >@ item.gender</li > 6 <li >@ item.address</li > 7 </ul > 8 }
![](/assets/blank.gif)
![](/assets/blank.gif)
运行后的效果如下:
未完待续。
本教程会持续更新。
转载于:https://www.cnblogs.com/webenh/p/6086244.html
跨域调用webapi web端跨域调用webapi相关推荐
- 移动web端页面如何调用手机QQ?
文章目录 手机web页面调用手机QQ实现在线聊天的效果 方法一: html代码如下: js代码如下: 方法二: 代码如下: 效果图截图如下: 统计表1 - 浏览器默认拦截 统计表2 - 设备端与协议类 ...
- JAVA与.NET的相互调用——通过Web服务实现相互调用
JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方.而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发.而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候 ...
- web端跨域调用webapi
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
- php调用 打印机,web端调用打印机方案总结(示例代码)
背景 新零售业务开始以来,一些线下商品上架售卖的同时,要明确售卖价格,前期人工人肉写标签贴上商品售卖价,容易 产生疏忽,导致所标售卖价与收银所收价格不统一,造成顾客疑惑(据说还因为被投诉,上了新闻-_ ...
- 什么是跨域,为什么浏览器会禁止跨域,以及实现跨域的几种方式
首先我们来想一想 为什么会有跨域这个名词的出现呢? 跨域又是什么呢?为何要跨域? 浏览器的同源策略又是什么?怎么解决? jsonp又是什么? 跨域的原理又是什么呢? 名词解释: 1.什么是跨域 跨域的 ...
- C#进行Visio二次开发之Web端启动绘图客户端并登录
有这样的需求,一个系统,包含Web端的后台和Winform的绘图客户端程序,用户需要在Web端能够启动绘图客户端,并且不需要重新登录(因为已经登录了Web端了). 那么在IE的Web端,如何启动Win ...
- Qt QWebChannel web端js与C++交互
文章目录 1. QWebChannel 2. 使用QWebEngine的示例 2.1 C++端代码 2.1.1 mainwindow.cpp 2.1.2 mytestclass.h 2.1.3 myt ...
- 关于web项目跨域问题详解
一.为什么会出现跨域问题 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响. ...
- java 服务端 处理跨域_javaweb服务端跨域支持
项目开发为了支持web浏览器ajax的直接请求,涉及到了跨域的需求,通过学习对跨域有了更深入的认识,现在总结一下: 1.跨域说明 跨域指请求和服务的域不一致,浏览器和H5的ajax请求有影响,而对服务 ...
最新文章
- 毕业BG(01背包问题)
- install onnx_tensort
- oracle 如果存在不创建表,oracle – 如果表不存在则创建表,并在创建后输入一行...
- moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–客户端
- 12.2 新特性:锁信息获取之在线删除索引
- 利用Delphi-cross-socket 库提升kbmmw 跨平台开发
- apache java cache-control,Tomcat: Cache-Control
- 数字电路课程设计--电子钟实验报告
- 自然语言处理——基于预训练模型的方法——第4章 自然语言处理中的神经网络基础
- go语言编写同时支持Linux和Windows的单文件Web界面文件浏览器filebrowser介绍
- 妹子,你早该放弃了...
- Python爬取IMDB TOP 250 电影榜单
- 鼠标设置按键功能方式(例如设置鼠标侧键为复制粘贴功能)
- windows2003 序列号
- Python --- 输入、输出、运算符
- PCB中MARK点画法与注意事项
- vivado 2018.2官方下载
- 指针 Swap交换函数
- Java医院管理系统(his)源码免费分享
- php-pfm并发,php-pfm配置详解
热门文章
- 数据消费过程_如何优雅地规划数据仓库体系
- C语言 neutralize函数,关于因子数据处理函数中的中性化函数的几个问题
- spark 读取多个路径_spark
- 小米盒子显示gitv不动_2020电视盒子排行榜,五款“真香”盒子报到
- redis 命令 释放连接_Redis---gt;02
- arduino 舵机接线图_用fritzing绘制arduino硬件连线图
- python的__name__
- mybatis查询返回null的原因_可怕!你没看错,这次确实是纯手工实现一个MyBatis框架...
- 计算机领域中所谓课机是指,1.计算机基础知识题及答案
- 计算机论文的写作方法有哪些,计算机专业论文的写作方法.ppt