(4)WebApi 跨域问题



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace APIApplication.Models
{
public class Employees
{
public int? Id { get; set; }
public int? DepartmentId { get; set; }
public string Name { get; set; }
public string Job { get; set; }
public string Gender { get; set; }
public string PhoneNum { get; set; }
public string EmailAdderss { get; set; }
public string Address { get; set; }
}
}

static List< Employees> emps;
static EmployeesController()
{
emps = new List< Employees>();
emps.Add( new Employees { Id = , DepartmentId = , Name = "张三", Gender = "男" , Job = "ASP.NET工程师" , PhoneNum = "1886 0922483", EmailAdderss = "zhangsan@123.com" , Address = "江苏省苏州市独墅湖大道228号" });
emps.Add( new Employees { Id = , DepartmentId = , Name = "李四", Gender = "女" , Job = "web前端工程师" , PhoneNum = "1886 0922483", EmailAdderss = "lisi@123.com" , Address = "江苏省苏州市独墅湖大道228号" });
}
public IEnumerable <Employees > Get(int ? id = null )
{
return from employee in emps where employee.Id.Equals(id) || string.IsNullOrEmpty(Convert .ToString(id)) select employee;
}
public void Post( Employees employee)
{
employee.Id = ;
emps.Add(employee);
}
public void Put( Employees employee)
{
emps.Remove(emps.Where(e => e.Id == employee.Id).First());
emps.Add(employee);
}
public void Delete( int id)
{
emps.Remove(emps.Where(e => e.Id == id).FirstOrDefault());
}


<script>
$(document).ready( function () {
$.ajax({
type: 'GET',
url: 'http://localhost:7974/api/employees/get',
dataType: 'JSON',
success: function (data) {
alert( "姓名:" + data[].Name + " 性别:" + data[].Gender + " 住址:" + data[].Address);
}
});
})



using System.Web;
using System.Web.Http.Filters;
using System.Web.Mvc; namespace APIApplication
{
public class CrossSiteAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
private const string Origin = "Origin";
/// <summary>
/// Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。
/// </summary>
private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin" ;
/// <summary>
/// originHeaderdefault的值可以使 URL 或 *,如果是 URL 则只会允许来自该 URL 的请求,* 则允许任何域的请求
/// </summary>
private const string originHeaderdefault = "http://192.168.13.7:8002" ;
/// <summary>
/// 该方法允许api支持跨域调用
/// </summary>
/// <param name="actionExecutedContext"> 初始化 System.Web.Http.Filters.HttpActionExecutedContext 类的新实例。</param>
public override void OnActionExecuted( HttpActionExecutedContext actionExecutedContext)
{
actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault);
}
}
}
[CrossSite]
public IEnumerable<Employees > Get(int ? id = null )
{
return from employee in emps where employee.Id.Equals(id) || string.IsNullOrEmpty(Convert .ToString(id)) select employee;
}
public class v_employees
{
public int? id { get; set; }
public int? departmentid { get; set; }
public string name { get; set; }
public string job { get; set; }
public string gender { get; set; }
public string phonenum { get; set; }
public string emailadderss { get; set; }
public string address { get; set; }
}
private HttpClient client = new HttpClient ();
private string url = "http://192.168.13.7:8001/api/employees/get" ; public async Task< ActionResult> Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; var data = await client.GetAsync(url);
var employees = data.Content.ReadAsAsync<IEnumerable <v_employees >>();
List< v_employees> emps = employees.Result.ToList();
ViewData[ "employees"] = emps;
return View();
}
然后在Index页面设置ViewData

在页面里就可以直接使用数据emps了
@foreach ( var item in emps)
{
<ul >
<li >@ item.name</ li>
<li >@ item.gender</li >
<li >@ item.address</li >
</ul >
}
运行后的效果如下:

未完待续。
本教程会持续更新。
http://www.cnblogs.com/Leo_wl/p/4780650.html
(4)WebApi 跨域问题的更多相关文章
- C#进阶系列——WebApi 跨域问题解决方案:CORS
前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列— ...
- WebApi 跨域问题解决方案:CORS
注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看W ...
- C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)
C#进阶系列——WebApi 跨域问题解决方案:CORS 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2.场景测试 四.总结 正文 前言:上篇总结了下W ...
- asp.net—WebApi跨域
一.什么是跨域? 定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制. 同源策略限制了以下行为: 1.Cookie.LocalStora ...
- 关于WebAPI跨域踩到的一点坑
最近在尝试前后端分离的WebAPI+AngularJS方案,在率先处理授权的时候,踩到了一点WebAPI跨域的坑,其实严格意义上来说也不算是坑吧,只是我自己对WebAPI不熟悉而已,这里我与大家分享一 ...
- WebAPI跨域处理
原文来自:http://www.cnblogs.com/heifengwll/p/6243374.html WebApi2跨域问题 一.跨域问题产生的原因:同源策略(Same origin pol ...
- SNF快速开发平台MVC-EasyUI3.9之-WebApi跨域处理方案
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案.由于时间有限,本文不会深入. 笔者遇到的问题是Js调用WebAPI中的数据进行跨域的场景.涉及若干跨域方案:目前采用we ...
- (转)C# WebApi 跨域问题解决方案:CORS
原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...
- sql的行转列(PIVOT)与列转行(UNPIVOT) webapi 跨域问题 Dapper 链式查询 扩展 T4 代码生成 Demo (抽奖程序)
sql的行转列(PIVOT)与列转行(UNPIVOT) 在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比 ...
- 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式
连表查询都用Left Join吧 最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...
随机推荐
- 安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误
表现: /home/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/home/sphinx-1.1.0/sp ...
- eclipse 快捷键大全(转载)
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...
- ITShare
框架底层通过IBatis和XML实现ORM映射: 业务处理类似UI,通过Controller和JavaScript交互: 视图通过Castle与NVelocity实现,jquery.tmpl渲染: . ...
- PHP安装kafka插件
在工作中我们经常遇到需要给php安装插件,今天把php安装kafka的插件的步骤整理下,仅供大家参考 1:需要先安装librdkafka git clone https://github.com/ed ...
- c语言一些知识点的记录
1.extern关键字 extern关键字可以置于变量或者函数前面,用于告诉编译器此变量或函数定义于其他的模块.
- php 时间戳与日期的转换(转载)
UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式. a:Unix时间戳存储.处理方便,但是不直观 b:格式化日期直观,但是处理起来不如Unix时间戳那么自如 [关于两者的互相转换] 日 期 ...
- Entity Framework 杂记
本系列文章,将介绍本人在学习和使用Entity Framewrok的过程中的收获与心得. 或许有的地方讲的错误 欢迎大家批评指出. 1.EntityFramework 数据库的迁移 2.Mysql 该 ...
- 用ffmpeg合并音频文件
1 问题描述 打电话的对话,被拆分成了两个PCM文件.其中主叫的录音文件A.pcm,被叫的录音为B.pcm. 问题是怎么合成一个混音的对话文件AB.wav. 2 WAV文件的录音格式 常见的声音文件主 ...
- sql手工注入时的探测技巧汇总
工具的灵活性肯定比不上人,在手工探测的基础上再去自定义工具,才是正道. sql注入时手工探测技巧 =================================================== ...
- Json在PHP与JS之间传输
1. JS-->PHP a). JS create Json <script> $(document).ready(function(){ /*--JS create Json--* ...