之前尝试过用aJax做的一些跨域请求,一般都是在本地可以跨域,但放到服务器上就不行了。
现在找到了一种更好的方法:.NET+$.getJSON,代码非常简洁,可以兼容各种主流浏览器,不会弹出安全提示对话框。
例如:
假如说我们要跨域请求http://www.test.com/testpage.aspx这个页面返回的值,我们可以分别在服务器端和客户端js下这么做。
服务器端-
string
style
=
"
style1
"
;
string jsoncall = Request[ " jsoncallback " ];
Response.Write(jsoncall + " ({data:\ "" + style+ " \ " }) " );
Response.End();
string jsoncall = Request[ " jsoncallback " ];
Response.Write(jsoncall + " ({data:\ "" + style+ " \ " }) " );
Response.End();
我们可以根据条件来给变量style赋值,然后返回给客户端。
客户端-
代码
$.getJSON(
" &callback =?",
function(json) {
alert(json.responseData.translatedText);
});
$.getJSON("http://www.test.com/testpage.aspx?jsoncallback=?", {},function(json){
alert(json.data);
});
" &callback =?",
function(json) {
alert(json.responseData.translatedText);
});
$.getJSON("http://www.test.com/testpage.aspx?jsoncallback=?", {},function(json){
alert(json.data);
});
引用jquery-1.4.2.min.js,然后将客户端的这个js添加到任意域下页面里都可以获得来自test.com域下testpage.aspx这个页面的返回值了。
这就是通过jQuery进行跨域操作的我目前认为最简单实用的一种方法,希望对正在寻求跨于操作的朋友有帮助,也希望有更好解决方案的朋友在下面跟评论。