Ajax跨域问题解决方案
由于安全问题的考虑,Ajax(xmlhttprequest)默认是不支持跨域调用的。比如在www.cadal.com去请求www.test.cadal.com的数据,都是不行的。
解决方案有很多,总结如下:
参考:
1.利用<script>标签
Difficult to know when the content is available, no standard methodology, can be considered a "security risk".
script设置Url后自动会执行
example
远端:
var data=123;
客户端:
<html>
<body>
<mce:script id="test"></mce:script>
<input type="button" id="button" value="获取" onclick="get('http://test.cadal.com/demo/test.asp');">
<mce:script type="text/javascript"><!--
function get(url)
{
document.getElementById("test").src=url;
alert(data);
}
// --></mce:script>
</body>
</html>
2.代理
Local proxy:
Needs infrastructure (can't run a serverless client) and you get double-taxed on bandwidth and latency (remote - proxy - client).
利用如动态网页ASP JSP PHP等进行代理,进行中转,缺点显而易见。
3.frame方法
在同一个域下的各个子域之间(非完全跨域),如果设置了document.domain,那么是可以相互之间调用js的。。利用这一点,可以在test.zzsky.cn下面放上一个页面,这个页面可以完成用ajax获取同一个子域www.test.cadal.com的数据,而在 www.cadal.com下框架这个页,这样就可以操纵被框架页来获取数据了。
example
远端frame:
<html>
<head>
<mce:script type="text/javascript" src="http://www.cadal.com/demo/ajax-cross-domain/Ajax.js" mce_src="http://www.cadal.com/demo/ajax-cross-domain/Ajax.js"></mce:script>
<mce:script type="text/javascript"><!--
document.domain="cadal.com";
// --></mce:script>
</head>
<body>
</body>
</html>
客户端:
<html>
<head>
<mce:script type="text/javascript"><!--
document.domain="cadal.com";
// --></mce:script>
<body>
<iframe src="http://test.cadal.com/demo/iframe.htm" mce_src="http://te
相关文档:
<html>
<body>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Inte ......
在本节我准备只写上关于Ajax的说明,多数来自jQuery的帮助文档,所以不要放在首页。因为我觉得首页应该是要花费了时间和心思的作品。代码演示和jQuery Ajax 一些新的,将在下一次有空时讲述,这里就不讲了。时间已经0晨了。如果你举得有什么jQuery的疑问或者觉得Ajax该讲述那些内容的都可以跟我留 ......
我的春秋痴梦第二步:
写一个 通用的 对象 列表 ,还 包含 搜索和 属性过滤。
具体的效果是:
当新 业务 添加一个 表的时候,只需要在 对象模型里的 添加一个 model
后台几乎不需写代码。
(我是后台:激动人心!)
调用的对象,第几页,属性的 过滤 和搜索全是 前台的Ajax参数控制
(我是前台:#$!@#$%$^#$% ......
A.aspx页面放一个dropdownlist,在A.aspx.cs添加: this.drpSchool.Attributes.Add("onchange", "load(this.options[this.selectedIndex].value)");
在A.aspx页面添加如下脚本:
function load(state){
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
......
ASP.NET 2.0 Ajax中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX
版本为AJAX November CTP。
三个示例分别为:
1 带参数的WS方法
2 不带参数的WS方法
3 参数类型为DataTable的WS方法
一、WebMethod
注意要点:
1 WebMethod类需要添加命名空间 Microsoft.Web. ......