一、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方式直接输出到引用位置。