zoukankan      html  css  js  c++  java
  • WebAPI post 跨域调用及坑

    nuget中安装Microsoft ASP.NET Web API Cors相关的两个包
    EnableCors可以在方法 类上用EnableCorsAttibute设置
    也可以在WebApiConfig的Register方法中,直接config.EnableCors()

    IIS的设置,在web.config中
    <system.webServer>中

    <httpProtocol>
    <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*"/>
    <add name="Access-Control-Allow-Headers" value="*" />
    <add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/>
    </customHeaders>
    </httpProtocol>

    WebAPI方法第一个参数使用[FromBody],post多个值,需要定义成一个对象,当成一个[FromBody]参数

    1.

    $(document).ready(function () {
    var ecParams = {
    "pID": 0,
    "eItemIDs": ["01", "42"],
    "startTime": "2016/01/10",
    "endTime": "2016/01/11"
    };
    var prm = JSON.stringify(ecParams);
    $.ajax(
    {
    //url: "http://xxx.xxx.xxx.xxx/xxxAPI/api/EItemDatas/getEItemData",
    url: "../api/EItemDatas/getEItemData",
    type: "post",
    dataType: "json",
    contentType: "application/json", 
    data: prm
    success: function (data) {
    alert(data);
    },
    error: function (XHR, text, err) {
    alert(text);
    }
    }
    );
    });

    2.

    $(document).ready(function () {
    var ecParams = {
    "pID": 0,
    "eItemIDs": ["01", "42"],
    "startTime": "2016/01/10",
    "endTime": "2016/01/11"
    };
    //var prm = JSON.stringify(ecParams);
    $.ajax(
    {
    url: "http://xxx.xxx.xxx.xxx/xxxAPI/api/EItemDatas/getEItemData",
    //url: "../api/EItemDatas/getEItemData",
    type: "post",
    dataType: "json",
    //contentType: "application/json", 
    data: ecParams,
    success: function (data) {
    alert(data);
    },
    error: function (XHR, text, err) {
    alert(text);
    }
    }
    );
    });


    如上两段代码,第1段可以正常使用
    第2段也可以正常使用,但是如果在第1段中调用跨域的接口会出现error,原因暂未知
    ecParams的各个key跟getEItemData方法的参数类属性名完全一致

  • 相关阅读:
    scala入门-03基础知识->表达式
    scala入门-02基础知识->方法
    jetty命令行方式启动jetty-runner.jar 容器
    本地开发spark代码上传spark集群服务并运行(基于spark官网文档)
    Linux下查看进程和线程
    scala入门-01-IDEA安装scala插件
    spark-1.2.0 集群环境搭建
    ubuntu每次登陆都用root账号登陆
    hadoop2.6.0版本集群环境搭建
    spark ssh配置
  • 原文地址:https://www.cnblogs.com/fenix/p/5127984.html
Copyright © 2011-2022 走看看