.net mvc 幾種跨域獲取數據方案

方案一:web

   在web.conflg配置文件system.webServer節點中添加如下節點配置ajax

<!--容許 "全部網站" 跨域訪問寫法:-->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>-json

 

方案2、 ajax-jsonp請求:跨域

to:jsonp只支持get請求。函數

頁面代碼:jsonp

<script>網站

$.ajax({
url: 'http://localhost:54407/Home/GetJsonpData', //請求的url

dataType: "jsonp", //將請求類型設爲值jsonp

//傳遞給請求處理程序或頁面的,用以得到jsonp回調函數名的參數名(通常默認爲:callback)
jsonp: "callback", //服務端會經過HttpContext.Request["callback"]; 拿到jsonpCallback這個回調函數的名稱

jsonpCallback: "jsonpCallback", //自定義的jsonp回調函數名稱"jsonpCallback",返回的json也必須有這個函數名稱

success: function (json) {
console.log(json);this

},
error: function (xhr, status, error)
{ console.log(xhr); }
});url

</script>blog

 

 

 

後臺代碼:

[HttpGet]
public ActionResult GetJsonpData()
{
string callback = this.Request["callback"];
string data = "{\"msg\":\"hello world \"}";
this.Response.Write(callback + "(" + data + ")");
return new EmptyResult();

 

相關文章
相關標籤/搜索