工作中很容易會遇到有接口開發,然後其他項目調用
如果其他項目ajax方式調用的 時候會出現跨域請求的問題,這次就讓哥帶着大家用JSONP解決這個小問題。
首先,對于ajax請求 js這樣寫:
jQuery(document).ready(function () {
$.ajax({
type: "get",
async: false,
url: "http://localhost:63614/WebSite2/ajax.aspx",
dataType: "jsonp",
jsonp: "callbackparam", //傳遞給請求處理程式或頁面的,用以獲得jsonp回調函數名的參數名(預設為:callback)
jsonpCallback: "success_jsonpCallback", //自定義的jsonp回調函數名稱,預設為jQuery自動生成的随機函數名
success: function (json) {
alert(json);
alert(json[0].name);
},
error: function () {
alert('fail');
}
});
});
請求的頁面( localhost:63614/WebSite2/ajax.aspx)page_load裡面這樣寫
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "text/plain";
string callbackFunName = Request["callbackparam"];
Response.Write(callbackFunName + "([ { name:\"Rocher\"} ] )");
Response.End();
}
測試成功!
關鍵點在于傳回的資料格式上。請仔細看我傳回的jsonp資料的格式。