web api前端调用出现跨域问题以及其他问题处理汇总

前端调用跨域问题

前端调用出现这个问题
在这里插入图片描述
解决方法:
1.在webconfig中添加如下代码

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

放置位置在
在这里插入图片描述
2.在每个控制器中添加一个方法如下(目前还未验证不添加是否可行)

        public string Options()
        {
            return null;
        }

web接口返回类型设置为json

1.添加服务引用
在这里插入图片描述
2.引用头文件
using System.Web.Script.Serialization;
可以使用JObject、JArray两种类型灵活组合

List<tb_measure> measureList = new List<tb_measure>();
                tb_measureBLL bll = new tb_measureBLL();
                measureList = bll.getMeasureListByOrgID(orgID);
                obj.Add("State", 0);
                JArray list = new JArray();
                foreach (var ent in measureList)
                {
                    JObject record = new JObject();
                    record.Add("id", ent.measure_id);
                    record.Add("name", ent.measure_name);
                    list.Add(record);
                }
                obj.Add("records", list);

当返回类型为string时
经过处理去掉多余的引号

return new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") };

json为string 方法返回的类型为HttpResponseMessage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值