天天看點

ajax跨域系列--JSONP方式處理

工作中很容易會遇到有接口開發,然後其他項目調用

如果其他項目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資料的格式。

繼續閱讀