.NetCor支持跨域


一、Get请求

1. 前端代码

$.ajax({
    type: "get",
    async: false,
    url: 'http://127.0.0.1:10801/api/CrossDomain', // 1
    dataType: "jsonp",
    jsonp: "callbackparam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
    jsonpCallback: "myCallbackFunction",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
    success: function (json) {
        alert('JsonP_OK');
        alert(json);
    },
    error: function () {
        alert('JsonP_Fail');
    }
});

2. 后端代码

    /// <summary>
    /// 跨域接口测试
    /// </summary>
    [Route("api/[controller]")]
    [ApiController]
    public class CrossDomainController : ControllerBase
    {
        [HttpGet]
        public string Get()
        {
            CrossDomainModel model = new CrossDomainModel();
            model.Name = "Yxx";
            model.Sex = "M";

            string res = JsonConvert.SerializeObject(model);
            res = $"myCallbackFunction({res});";

            //string res = "myCallbackFunction({\"id\":1,\"name\":\"C#\",\"is_familiar\":true});";
            return res;
        }
    }

二、Post请求

1. 前端代码

var obj = {
    "SFC":"SFC001",
    "FactoryName":"A801",
    "MaterialCode":"BCL001",
    "MaterialName":"中文描述"
};

$.ajax({
    type: "post",
    async: false,
    url: 'http://127.0.0.1:10801/api/CrossDomain', // 1
    data : JSON.stringify(obj),
    contentType: "application/json;charset=utf-8",
    dataType: "text",
    success: function (json) {
        var resultObj = JSON.parse(json);
    },
    error: function () {
        alert('JsonP_Fail');
    }
});

2. 后端代码

2.1 接口代码

    /// <summary>
    /// 跨域接口测试
    /// </summary>
    [Route("api/[controller]")]
    [ApiController]
    public class CrossDomainController : ControllerBase
    {
        [HttpPost]
        [EnableCors("any")]
        public string Post(PrintInfoModel param)
        {
            return JsonConvert.SerializeObject(param);
        }
    }

2.2 Startup.cs代码

//添加cors 服务 配置跨域处理            
services.AddCors(options =>
{
    options.AddPolicy("any", builder =>
    {
        builder.AllowAnyOrigin() //允许任何来源的主机访问
        .AllowAnyMethod()
        .AllowAnyHeader();
        //.AllowCredentials();//指定处理cookie
    });
});
//配置Cors
app.UseCors("any");

注意: app.UseCors(“any”); 要写在app.UseAuthorization(); 后面,否则会报错。

总结

前端页面跨域调用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值