C#作為.NET平臺(tái)的主要編程語言,不僅可以在Windows系統(tǒng)中進(jìn)行開發(fā),還可以通過.NET Core等框架在Linux和Mac OS X等多種系統(tǒng)上進(jìn)行開發(fā)。在開發(fā)過程中,經(jīng)常需要跨域獲取Json數(shù)據(jù),這就需要使用前后端分離的方式來實(shí)現(xiàn),本篇文章將介紹如何使用C#實(shí)現(xiàn)跨域json后臺(tái)。
首先,我們需要使用C#的ASP.NET Web API框架來搭建后臺(tái)。在項(xiàng)目中新建一個(gè)控制器,例如名字為“JsonController”。在控制器中,添加一個(gè)方法來獲取Json數(shù)據(jù),例如名字為“GetData()”,代碼如下:
[HttpGet] public ActionResult GetData() { var data = new { Status = "ok", Content = "Hello world!" }; return Json(data, JsonRequestBehavior.AllowGet); }
在方法中,我們創(chuàng)建了一個(gè)包含兩個(gè)屬性的類“data”,來模擬Json數(shù)據(jù)。然后通過Json()方法將這個(gè)類返回成Json格式。需要注意的是,由于我們需要跨域獲取數(shù)據(jù),所以在這里要設(shè)置JsonRequestBehavior屬性為AllowGet。
接下來我們需要在Web.config中添加支持跨域請求的配置。添加以下配置即可:
<system.webServer>
<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>
</system.webServer>
上面配置的含義是允許任何域名的訪問、允許Content-Type請求頭、允許GET、POST、PUT和DELETE等請求方式。
最后我們需要在前端使用jQuery或其他庫來發(fā)起跨域請求,代碼如下:
$.ajax({ url: 'http://localhost:8080/Json/GetData', type: 'GET', dataType: 'json', success: function (data) { console.log(data.Content); }, error: function (xhr, status, error) { console.log(error); } });
在上述代碼中,我們通過使用jQuery的.ajax()方法來發(fā)起GET請求,指定了請求的url、請求的數(shù)據(jù)類型和成功回調(diào)函數(shù)等信息。如果請求成功,控制臺(tái)將輸出“Hello world!”。
以上就是使用C#實(shí)現(xiàn)跨域json后臺(tái)的完整流程。