Asp.Net Web API是一个轻量级的Web服务,当Web API和Web程序不是部署在同一域的时候,要使用jQuery来实现调用API的接口就存在跨域的问题。下面介绍两种方式来解决jQuery调用API跨域的问题。

环境IIS:IIS8.0

VS:VS2013

.Net Framework:4.5

第一种方法

微软提供了一种在服务端的跨域的方法,详细步骤可以参考下面链接:

总结一下就是下面的几个步骤:

1、 使用NuGet命令Install-Package Microsoft.AspNet.WebApi.Cors 安装依赖项;

2、 WebApiConfig类修改如下,该类在App_Start目录下。

public static class WebApiConfig

{

public static void Register(HttpConfiguration config)

{

// Web API configuration and services

//下面一行为跨域添加的代码

config.EnableCors();

// Web API routes

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

}

}

3、在Api的Controller上添加特性,如下:

[EnableCors(origins:"*",headers:"*",methods:"*")]

[RoutePrefix("api/pro")]

public class ProjectFilesApiController : ApiController

{

origins: 访问API的客户端的地址,比如http://localhost:8001 ,如有多个可以用逗号隔开,设置为*号表示任何客户端都可以访问。

第二种方法

第二种方法相对比较简单,只是修改下配置文件即可。

配置文件代码如下:

问题

上面的两种方法都可以达到跨域的效果,但是这两种方法都只支持IE10+,Chrome下没有问题。想要支持IE10以下的浏览器,需要在调用之前设置下jQuery的跨域属性,代码如下:

function corsTest() {

//设置jQuery支持跨域

jQuery.support.cors = true;

$.ajax({

url: "http://localhost:8010/api/pro/empty",

type: "POST",

dataType: "json",

success: function (data) {

alert(data);

},

error: function (a) {

alert(a);

}

});

}

jquery ajax跨域asp,jQuery跨域调用Asp.Net Web API相关推荐

  1. mvc jquery ajax分页实例,jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解,mvcpagerajax分页...

    jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解,mvcpagerajax分页 简单的两个步骤即可实现分页功能 //回调里面进行业务处理 function lo ...

  2. 【视频教程】使用 ASP.NET Core 3.x 构建 RESTful Web API 已完结

    使用 ASP.NET Core 3.x 构建 RESTful Web API 的视频教程已经完结,共50讲,约10.5小时. B站可看,点击原文链接. 度娘盘可下载完整视频: https://pan. ...

  3. 使用Http-Repl工具测试ASP.NET Core 2.2中的Web Api项目

    今天,Visual Studio中没有内置工具来测试WEB API.使用浏览器,只能测试http GET请求.您需要使用Postman,SoapUI,Fiddler或Swagger等第三方工具来执行W ...

  4. 在ASP.NET Core 2.0中创建Web API

    目录 介绍 先决条件 软件 技能 使用代码 第01步 - 创建项目 第02步 - 安装Nuget包 步骤03 - 添加模型 步骤04 - 添加控制器 步骤05 - 设置依赖注入 步骤06 - 运行We ...

  5. ASP.NET Core 3.1 系列之 Web API 添加身份验证Jwt

    ASP.NET Core 3.1 系列之 Web API 中间件篇 (一) 身份验证(Jwt)中间件使用步骤 添加 NuGet程序包 添加包:Microsoft.AspNetCore.Authenti ...

  6. jquery Ajax 通过jsonp的方式跨域提交表单

    Jquery Ajax可以通过jsonp的方式跨域提交表单,至于什么是跨域提交简单说就是你的客户端和服务端不在同一个域名下或端口号不同也可以叫做跨域. 前台代码: $.ajax({type : 'ge ...

  7. ajax请求是宏任务还是微任务_ASP.NET Web API基础(04)---异步编程和跨域请求 - 高原秃鹫...

    异步编程 .1 线程回顾 说到异步编程,离不开多线程.在前面的课程中我们学习过多线程.回顾一下我们之前的例子. public static void DoWork() { (1000); (" ...

  8. jquery ajax xml attribute,获得jQuery ajax和asp.net webmethod xml响应工作

    我有一个asp.net WebMethod,它返回一个XmlDocument对象.我可以使用jquery ajax成功调用该方法,但似乎无法使函数成功(服务器端webmethod使用正确的参数调用,但 ...

  9. jquery ajax下拉联动,jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List TeamLeaderList = FinanceD ...

  10. jquery ajax json传递数组,jQuery ajax 传递JSON数组到Spring Controller

    jQuery ajax传递单个JSON对象到后台很容易,这里记录的是传递多个JSON对象组成的JSON数组到java 后台,并说明java如何解析JSON数组. 1.js代码 var relation ...

最新文章

  1. GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!
  2. (转)Go语言核心36讲之Go语言入门基础知识
  3. LeetCode Sum Root to Leaf Numbers (dfs)
  4. Newtonsoft.Json.dll序列化为json,null值自动过滤
  5. 巧用这19条MySQL优化,效率至少提高3倍
  6. vue定时ajax获取数据,vue 中使用 AJAX获取数据的方法
  7. 图片效果集合(js、jquery或html5)
  8. 剑指Offer - 面试题18. 删除链表的节点
  9. [IDL入门] 两个PPT,IDL上手
  10. axios框架里面如何使用get,post,通用ajax方法请求。
  11. 蓝桥杯 ALGO-20 算法训练 求先序排列
  12. html新的页面打开新页面,javascript如何打开新窗口?
  13. UWF自定义设置与命令管理
  14. mysql analyze_mysql analyze和optimize
  15. DevExpress项目升级总结
  16. iOS 相册,图片裁剪工具(附demo)
  17. 分级阅读网站/阅读网站.阅读系统的设计与实现
  18. 计算机网络实验四:配置网络路由
  19. 实战演练-抽奖程序(C#)(第一部分)
  20. 第一篇-python入门

热门文章

  1. 解决数据库自增ID的问题
  2. 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案...
  3. base(C# 参考)
  4. vc 版本 宏 (zz.IS2120@BG57IV3)
  5. php 循环打开目录读取文件
  6. urlrewrite实现之HTTP 运行库支持
  7. colease函数 mysql_SqlConnection 概述
  8. python与人工智能编程-五大人工智能流行编程语言对比,只要学会一种绝对不亏!...
  9. python零基础怎么学-零基础python入门分析,如何做到一个月学会(深思极恐)
  10. python画二维散点图-python3怎样画二维点图