jsonp


一、JavaScript

遠程web     Target.ashx

public class Target : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        string funName = context.Request.Params["callbackFun"];

        string strData = funName + "({\"name\":\"james\",\"age\":\"18\"});";
        context.Response.Write(strData);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}

本地調用代碼:

     
  <script>
function fun(data) {
for (var key in data) { alert(data[key]); } } </script> <!--Script標簽可以跨域訪問--> <script type="text/javascript" src="http://www.oumind.com/C01Target.ashx?callbackFun=fun"></script>


二、Jquery

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
    <script type="text/javascript">

        var requestUrl = "http://www.oumind.com/C01Target.ashx";

        window.onload = function () {
            document.getElementById("btnJQ").onclick = doJq;
        }
        function doJq()
        {
            //使用 jq 發送跨域請求
            $.ajax(requestUrl, {
                type:"get",
                dataType: "jsonp",// 指定 jq 發送 jsonp 請求(內部,就是動態創建一個 script 標簽)
                jsonp: "callbackFun",// 指定 傳遞 函數名的 參數的名字 如: url?callbackFun = fun
                jsonpCallback: "fun",// 指定 回調 的 函數名
                success: function () {
                    alert("123123");
                }
            });
        }
        function fun(data)
        {
            for (var key in data)
            {
                alert(data[key]);
            }
        }
    </script>
</head>
<body>
    <input type="button" id="btnJQ" value="使用Jquery 跨域請求 - 內部其實就是動態創建 <script>標簽發送 跨域請求" />
</body>
</html>

三、如果讀取的遠程數據僅在一個區域顯示,可以在遠程文件以document.write方式直接輸出到引用位置。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM