<!DOCTYPE HTML>
<html LANG="cn">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>cross domain IE5-11</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(function(){
$.support.cors = true; // support to IE5-11
$.ajax({
type: "GET",
url: "http://xxx-services:8081/api/values/99",
dataType: "json"
}).done(function (data) {
console.log(data);
});
});
</script>
</head>
<body>
</body>
</html>

public class ValuesController : ApiController
{
public async Task<string> Get(int id)
{
var info = string.Format("API CurrentThread:{0}", Thread.CurrentThread.ManagedThreadId);
var infoTask = await GetCurrentThread();
var infoTaskFinished = string.Format("After GetCurrentThread:{0}", Thread.CurrentThread.ManagedThreadId);
return string.Format("{0},{1},{2},{3}", info, infoTask, infoTaskFinished, id);
} private async Task<string> GetCurrentThread()
{
await Task.Delay();
return string.Format("Action CurrentThread:{0}", Thread.CurrentThread.ManagedThreadId);
}
}
public class Startup
{
public void Configuration(IAppBuilder MyApp)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
       MyApp.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
MyApp.UseWebApi(config);
}
}
//window service hosting

public class MyControllersService : ServiceHelper.BaseService
{
bool isstart = false;
public MyControllersService() : base("MyControllersService", true) { } protected override void MyWork()
{
try
{
this.OutputLog("MyWork Start", this.ServiceName);
string address = "http://xxx-services:8081/";
if(!isstart)
{
WebApp.Start<Startup>(url: address);
isstart = true;
this.OutputLog("Starting OWIN Host", this.ServiceName);
}
}
catch (Exception err)
{
this.OutputLog(CommonHelper.CommonUnit.ExceptionMsg(err), this.ServiceName);
throw;
}
finally
{
this.OutputLog("MyWork Stop", this.ServiceName);
}
    }
}

jquery call cross-domain webapi owin self-host的更多相关文章

  1. 基于空项目模板创建使用Owin来host的WebApi项目

    首先创建一个空的web项目,如下图所示: 项目创建成功以后,安装下面三个package. Install-Package Microsoft.AspNet.WebApi -Version 5.2.2I ...

  2. ASP.NET WebApi OWIN 实现 OAuth 2.0

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...

  3. NET WebApi OWIN 实现 OAuth 2.0

    NET WebApi OWIN 实现 OAuth 2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和 ...

  4. webapi框架搭建-创建项目(三)-webapi owin

    上一篇:创建项目(二) 在上一篇里,我们已经创建好了webapi应用,并已经部署到iis里,本篇讲如何用owin自宿主或是iis宿主来部署webapi应用. owin介绍 传统的asp.net网站只能 ...

  5. ASP.NET WebApi OWIN 实现 OAuth 2.0(自定义获取 Token)

    相关文章:ASP.NET WebApi OWIN 实现 OAuth 2.0 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: Accept: application/jso ...

  6. 用Web api /Nancy 通过Owin Self Host简易实现一个 Http 服务器

    过去做 端游的Http 服务器 用的WebApi 或者Mvc架构,都是放在iis...而我已经是懒出一个地步,并不想去配iis,或者去管理iis,所以我很喜欢 Self host 的启动方式. C#做 ...

  7. 【7】.net WebAPI Owin OAuth 2.0 密码模式验证实例

    1.OAuth密码模式 2.在VS中创建WebAPI项目 在nuget中安装: Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb 这 ...

  8. 前端开发各种cross之cross domain

    作为一个苦逼前端开发工程师,不得不面对各种cross,比如面对五花八门的浏览器我们必须cross browser,面对各种终端,我们必须cross device,在这么多年的前端开发经历中,在不同的域 ...

  9. [转]ASP.NET WebApi OWIN 实现 OAuth 2.0

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...

随机推荐

  1. 颜色模式中8位,16位,24位,32位色彩是什么意思?会有什么区别?计算机颜色格式( 8位 16位 24位 32位色)<转>

    颜色模式中8位,16位,24位,32位色彩是什么意思?会有什么区别简单地说这里说的位数和windows系统显示器设置中的颜色位数是一样的.表示的是能够显示出来的颜色的多少. 8位的意思是说,能够显示出 ...

  2. knockout的监控数组实现

    knockout应该是博客园群体中使用最广的MVVM框架,但鲜有介绍其监控数组的实现.最近试图升级avalon的监控数组,决定好好研究它一番,看有没有可借鉴之处. ko.observableArray ...

  3. iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager

    我们看看NSFileManager如何使用.包括创建文件,目录,删除,遍历目录等. 1.在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录, [cpp] view ...

  4. CyclicBarrier的使用

    最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆,如果有什么错误或者不当的地方,欢迎大家斧正. CyclicBarrier是一种多线程并发控制实用工具,和Count ...

  5. Lucene的查询及高级内容

    Lucene查询 基本查询: @Test public void baseQuery() throws Exception { //1. 创建查询的核心对象 FSDirectory d = FSDir ...

  6. 互联网大规模数据分析技术(自主模式)第五章 大数据平台与技术 第10讲 大数据处理平台Hadoop

    大规模的数据计算对于数据挖掘领域当中的作用.两大主要挑战:第一.如何实现分布式的计算 第二.分布式并行编程.Hadoop平台以及Map-reduce的编程方式解决了上面的几个问题.这是谷歌的一个最基本 ...

  7. lnline Hook初试

    简单解释下hook: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理 ...

  8. scanf是怎么从标准输入读取数据的

    scanf是从标准输入读取数据的 假设现在标准输入中的数据是123456 int a; 而我scanf("%d",&a); 会把123456转化为数字然后存入到a中. 如果 ...

  9. linux sed命令详解-乾颐堂CCIE

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  10. ssh上外网

    https://www.cnblogs.com/leipei2352/archive/2011/07/21/2112274.html http://www.qijiannet.com/web/1332 ...