最近公司開發的項目中很多地方需要跨域ajax請求,比如幾個子域名下
http://a.****.com/index123.aspx,
http://b.****.com/index2.aspx
都要請求用戶json信息,然後再對數據進行處理,起初我和同事們試了很多種方法,使用$.ajax() 無論是get或post方法都會引起uri deny的錯誤。一番GG之後發現了解決方法,也了解其中的原因。
jquery從1.2開始,.getJSON就支持跨域操作了。使用jquery.getJSON()方法可以解決跨域問題。實例如下
前台
<script type="text/javascript" src="/script/jquery.js"></script>
HTML中JS代碼
function gettst2() {
$.getJSON("http://ucenter.xxxx.com.cn/ajax/test.aspx?callback=?", { id: "123456", site: "01" },
function(data) {
alert(data.htmls);
document.getElementById("shows").innerHTML = data.htmls;
});
}
gettst2();
ASPX.cs文件中處理為
string jsoncall = Request.QueryString("callback");
Response.Write(jsoncall + "({htmls:測試001})");
如果加html代碼的話,千萬別加/n 符號,不然會出現亂碼,js 錯誤。