前端时间公司接口整顿,所有接口放一起了,然后我就写了一大堆API接口.......

今天用上了,公用人员库,前台通过ajax访问,

先是以‘json’作为数据格式进行访问,直接response field,,

发现是跨域了,尴尬,,,然后改成了‘jsonp’,好了,200 数据也能返回,但是ajax报错.parseerror.

第一种方法:

一堆百度,发现是jsonp格式和json格式是不一样的,jsonp指定了一个callback,然后查一大堆,发现可以解决,但是需要接口返回的时候也把callback指定上,拼接起返回..

感觉这样很不科学啊,,

第二种方法:

然后又是一通百度,发现一个很简单的让接口可以被跨域访问的方法.

直接配置文件下加:

 <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>

然后就ok拉,Access-Control-Allow-Origin可以指定允许访问的域名,*代表全允许..

第三种方法:引用System.Web.Cors.dll这个库,也可以做到跨域,只是还未尝试过..

顺带把API默认返回XML改为返回JSON的代码贴上

  GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("datatype", "json", "application/json"));

对于很多Post访问,报404的问题,解决如下:

 [HttpPost]
public bool Test([FromBody]string NAME)
{
return true;
}

然后前端访问的时候:

 $.ajax({
url: "http://10.12.1.9:9001/api/employee/GetDeptEmployee",
type: 'post',
data: { '': 'KD01.0001.0002.0001' },
dataType: 'json',
success: function (result) {}});

注意data参数部分,单个参数要留空,,不知是为什么,其余问题可参照下面的链接,很详细。

http://www.cnblogs.com/landeanfen/p/5337072.html

https://www.cnblogs.com/landeanfen/p/5177176.html

最新文章

  1. html的基础标签
  2. c# 哈希表跟函数
  3. HTML 方法
  4. C#往线程里传递参数
  5. js 删除多个相同name元素。
  6. 硬件相关-EMI &amp; EMS &amp; EMC
  7. [MySQL] 字符集和排序方式
  8. oracle Instance status: READY&ndash;lsnrctl status|start|stop
  9. 【转】virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法
  10. SpringMVC使用FileUpload上传文件
  11. 《C++反汇编与逆向分析技术揭秘》——函数的工作原理
  12. soapUI-Webservice接口测试
  13. Linux之安装虚拟机/虚拟操作系统[VisualBox]
  14. sudo执行命令允许教程
  15. laravel处理菜单保持的方法:
  16. is not allowed to connect to this MySQL server解决办法
  17. JavaScript的进阶篇
  18. Qt Quick Hello World hacking
  19. hdu-1147(跨立实验)
  20. MySQl资料链接

热门文章

  1. 【bzoj1552/3506】[Cerc2007]robotic sort splay翻转,区间最值
  2. ubuntu使用git提交github时,执行pull或者push命令要重新输入用户名和密码
  3. 如何通过AS3加载外部SWF文件,调用外部文件文档类的方法?
  4. 前端学习之-- DOM
  5. P1003 铺地毯(noip 2011)
  6. POJ 3281 [网络流dinic算法模板]
  7. 怎么配置ODBC microsoft Access 安装(win10)
  8. [转]图解eclipse 查看原始类出现The jar file rt.jar has no source attachment
  9. Ansible 详细用法说明(二)
  10. centos 安装python2.7