Ajax跨域Post方法调用Web Api(NuGet配置的环境)
没安装
的去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配置的环境)的更多相关文章
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示
随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是 ...
- AJAX跨域问题解决方法(4)——调用方解决跨域
调用方解决跨域的方法只有一种,那就是隐藏跨域. 何为隐藏跨域? 隐藏跨域的核心思路是通过反向代理隐藏跨域以欺骗浏览器 什么是反向代理?反向代理是指通过中间服务器使得访问同一个域名的两个不同url最终会 ...
- ASP.NET MVC 实现AJAX跨域请求方法《1》
ASP.NET MVC 实现AJAX跨域请求的两种方法 通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据 ...
- ajax 跨域解决方法
最近在开发过程中,使用ajax去异步调取图片.在开发中这个功能没什么问题,可以后来提测,重新部署之后就有问题了,这就是ajax的跨域问题. ajax核心对象XMLHttpRequest本身是不支持跨域 ...
- Ajax跨域通信方法
1.Jsonp.document.domain+iframe.window.name.window.postMessage.服务器上设置代理页面. 2.Jsonp(json with padding) ...
- 转载的别人的ajax跨域解决方法
http://dynamic.vip.xxxxxx.com/active/<controllers>/<active>/<id> 放在浏览器地址栏中访问可以得到正确 ...
- AJAX跨域问题解决方法(3)——被调用方解决跨域
被调用方解决跨域是指在HTTP响应头中增加指定的字段,允许调用方调用 可以在两种地方增加1.apache/nginx(HTTP服务器)2.tomcat(应用服务器) 浏览器如何判断跨域?仔细观察可以发 ...
- 解决ajax跨域的方法原理详解之Cors方法
1.神马是跨域(Cross Domain) 对于端口和协议的不同,只能通过后台来解决. 一句话:同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是 跨域问题了.而为什么开 ...
- ajax跨域--jsop方法
1.什么是JSONP? 要了解JSONP,不得不提一下JSON,那么什么是json ? json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表 ...
随机推荐
- spring MVC 尝试传参json(应用部分)
spring 3.1后增加新的注解:@Requestbody,@Responsebody, 暂不论Requestdody, 若想让后端代码直接返回json字符串,可使用@Responsebody, 用 ...
- POJ1753(位操作和枚举)
题目:http://poj.org/problem?id=1753 题意:一块4*4的棋盘,黑白块不规律分布,翻动一个色块,其上下左右,都会被翻动,知道全黑全白为止.输出最小次数,达不到则输出“Imp ...
- 页面解耦—— 统跳协议和Rewrite引擎
原文: http://pingguohe.net/2015/11/24/Navigator-and-Rewrite.html 解耦神器 —— 统跳协议和Rewrite引擎 Nov 24, 2015 • ...
- static修饰符
static修饰符表示静态的,可修饰字段.方法.内部类,其修饰的成员属于类,也就是说static修饰的资源属于类级别,而不是对象级别. static的正真作用:用来区别字段,方法,内部类,初始化代码块 ...
- 变量声明---let,const,解构
let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题. const是对let的一个增强,它能阻止对一个变量再次赋值. 块作用域 当用let声明一个变量,它使用的是 ...
- module 和 module.exports 的区别
自己理解的不好,推荐一篇文章吧: http://www.cnblogs.com/pigtail/archive/2013/01/14/2859555.html
- firefox插件HTTP-Tool的使用方法
2016年11月3日 14:32:01 星期四 chrome 有postman很强大 我比较懒, 不想FQ, 经常用firefox, 试了几款模拟post请求的插件, 觉得http-tool挺简洁的 ...
- 排序之----插入排序(C#实现)
算法步骤:(从小到大) 1:将第一个元素与第二个元素比较大小,如果第一个元素小于等于第二个元素,不做处理,继续比较第二个元素和第三个元素. 如果第三个元素小于第二个元素,保存要移动的元素(第三个元素) ...
- 海量日志分析方案--logstash+kibnana+kafka
下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...
- winserver 08 64位安装sql05 64位提示asp版本注册
将打开 安装IIS 6.0的就可以了,然后重启下