没安装的去NuGet安装,

然后安装,

建立Web Api项目.需要在里的WebApiConfig.cs里配置

 config.EnableSystemDiagnosticsTracing(); //感觉这句像是跨域的开关,

            //配置返回的时间类型数据格式  ,返回Json格式的数据,并且加入时间类型的格式
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new Newtonsoft.Json.Converters.IsoDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd hh:mm:ss"
}
);

并且在Web.Config里加入

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
<modules runAllManagedModulesForAllRequests="true" />

位置

总体来说就可以跨域了.

实验下写个小Demo

自己新建个控制器,

自己弄点儿东西,

 public class TryApiController : ApiController
{
[HttpPost]
public ResponseData MethodMapping([FromBody] RequestData requestData)
{
if (requestData.ActionCode != null && requestData.ActionCode != "")
{
string command = requestData.ActionCode;
System.Reflection.MethodInfo method = this.GetType().GetMethod(command);
if (method != null)
{
return (ResponseData)method.Invoke(this, new object[] { requestData.RequertParams });
}
else
return new ResponseData() { ErrorMsg = "请求函数名<ActionCode>不能为空", RequestStatus = "FAIL", ResponseEntity = null };
}
else
{
return new ResponseData() { ErrorMsg = "请求函数名<ActionCode>不能为空", RequestStatus = "FAIL", ResponseEntity = null };
}
} public ResponseData TheApi(string str)
{
ResponseData rd = new ResponseData();
rd.ResponseEntity = str;
return rd;
}
}
}
public class ResponseData
{
public string RequestStatus { get; set; }
public string ErrorMsg { get; set; }
public string ResponseEntity { get; set; }
}
public class RequestData
{
public string ActionCode { get; set; }
public string RequertParams { get; set; }
}

这是传入一个类,第一个参数是要求调用TheApi函数, 第二个参数是给被调用的函数传入的参数,

然后写个Ajax调用,

 Ajax: function (url, data, success, error) {
if (error) {
$.ajax({
type: "Post",
url: url,
dataType: "json",
data: data,
success: success,
//error: error
});
} else {
$.ajax({
type: "Post",
url: url,
dataType: "json",
data: data,
success: success,
error: function (XmlHttpRequest, textStatus, errorThrown) {
// alert(XmlHttpRequest.responseText);
}
});
}
}, Cmd.Ajax("http://localhost:8088/api/TryApi/MethodMapping", { ActionCode: "TheApi", RequertParams: "haha" }, function (result) {
alert(result.ResponseEntity)
})

那个haha就会被弹出来...写的很草,主要是备忘,

当然也可以用Cors.

												

Ajax跨域Post方法调用Web Api(NuGet配置的环境)的更多相关文章

  1. 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示

    随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是 ...

  2. AJAX跨域问题解决方法(4)——调用方解决跨域

    调用方解决跨域的方法只有一种,那就是隐藏跨域. 何为隐藏跨域? 隐藏跨域的核心思路是通过反向代理隐藏跨域以欺骗浏览器 什么是反向代理?反向代理是指通过中间服务器使得访问同一个域名的两个不同url最终会 ...

  3. ASP.NET MVC 实现AJAX跨域请求方法《1》

    ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ...

  4. ajax 跨域解决方法

    最近在开发过程中,使用ajax去异步调取图片.在开发中这个功能没什么问题,可以后来提测,重新部署之后就有问题了,这就是ajax的跨域问题. ajax核心对象XMLHttpRequest本身是不支持跨域 ...

  5. Ajax跨域通信方法

    1.Jsonp.document.domain+iframe.window.name.window.postMessage.服务器上设置代理页面. 2.Jsonp(json with padding) ...

  6. 转载的别人的ajax跨域解决方法

    http://dynamic.vip.xxxxxx.com/active/<controllers>/<active>/<id> 放在浏览器地址栏中访问可以得到正确 ...

  7. AJAX跨域问题解决方法(3)——被调用方解决跨域

    被调用方解决跨域是指在HTTP响应头中增加指定的字段,允许调用方调用 可以在两种地方增加1.apache/nginx(HTTP服务器)2.tomcat(应用服务器) 浏览器如何判断跨域?仔细观察可以发 ...

  8. 解决ajax跨域的方法原理详解之Cors方法

    1.神马是跨域(Cross Domain)   对于端口和协议的不同,只能通过后台来解决.   一句话:同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是 跨域问题了.而为什么开 ...

  9. ajax跨域--jsop方法

    1.什么是JSONP? 要了解JSONP,不得不提一下JSON,那么什么是json ? json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表 ...

随机推荐

  1. php-fpm启动,重启,终止操作

    最近安装了mysqli扩展,重启了nginx后,phpinfo()没有显示出mysqli,后来搞不出原因,直接使用了pdo连接数据库.直到今天安装redis后phpinfo()没有显示redis,内心 ...

  2. 【postman】postman

    谷歌插件网 http://chromecj.com/utilities/2014-09/181.html

  3. float-position的一些细节

      一 综述: float position 对于div布局的作用明显, 注意使用的细节也变得有必要了.  float position 有相同的地方,都会脱离"文档流"(posi ...

  4. Java Abstract Class & Interface

    一. 抽象类 1. 抽象类:包含了一个抽象方法的类就是抽象类 2. 抽象方法:声明而未被实现的方法,用关键字abstract声明 3. 抽象类被子类继承,子类(如果不是抽象类)必须重写(overrid ...

  5. iptables原理

    1.iptables防火墙简介 Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入.流出.流经服务器的数据包进 ...

  6. windows安装rabbitmq

    官网下载windows安装版本:http://www.rabbitmq.com/install-windows.html ,安装文件rabbitmq-server-3.6.5.exe 前提:安装erl ...

  7. Hibernate之缓存的原理

    一.关于缓存: 其实对于缓存而言,它其实就是一块内存空间,在这个空间中存放了相互关联的持久化对象, 也就是存在于Session缓存内的对象,那么Session负责根据持久化对象的状态变化来同步的更新数 ...

  8. linux常用命令-压缩解压命令

    gzip [文件] 压缩后文件格式 .gz,这个命令只能压缩文件,不能压缩目录.并且这个命令压缩后不保留源文件 gunzip [文件] 或者 gzip -d [文件] 解压缩.gz的压缩文件 tar ...

  9. WhatsApp的Erlang世界

    rick 的两个ppt整理 下载:2012 2013  ,使用半年erlang后,重新看这两个ppt才发现更多值的学习的地方,从ppt中整理如下: - Prefer os:timestamp to e ...

  10. 数独 JAVA实现

    数独游戏的规则从很久之前就知道,但是一直都没怎么玩过,然后到了大学,大一下学期自己学dfs的时候,刚刚好碰到了一个数独的题目,做出来后,感觉还是挺有成就感的 然后大二学了JAVA,看了下那个一些有关于 ...