易截截图软件、单文件、免安装、纯绿色、仅160KB

Ajax跨域问题研究笔记

作者:fbysss
msn:jameslastchina@hotmail.com 
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处
关键字:Ajax跨域
一.试验准备
    修改c:/windows/system32/drivers/etc/hosts文件,加入127.0.0.1 www.a.com www.b.com
    Tomcat/webapps下建立crossdomain目录,建立一个空的WEB-INF目录,创建page_on_site_b.jsp和index_on_site_a.jsp。
page_on_site_b.jsp内容如下:
var varonb='this is a var on site b.';
alert('welcome to site b.');
ajax_on_site_a.jsp内容如下:
  <mce:script type="text/javascript"><!--
var xmlHttp;
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
xmlHttp.onreadystatechange=callbackFunc;
xmlHttp.open("post","http://www.b.com:8888/crossdomain/page_on_site_b.jsp",true);
xmlHttp.send(null);
function callbackFunc(){
if(xmlHttp.readystate==4 && xmlHttp.status==200){
alert("可以访问");
}
}
// --></mce:script>
    
二、ajax是不允许跨域访问的。
不同的浏览器在不同情况下表现不一样:
IE中,如果是本地html文件调用远端资源,不会提示任何信息,可以通过。
如果把文件放到网站中,输入http://localhost:8888/crossdomain/ajax_on_site_a.jsp会弹出对话框提示“该页正在访问其控制范围之外的信息。这可能导致安全风险。是否继续?”,点击“是”之后可以正确执行。
如果输入http://www.a.com:8888/crossdomain/ajax_on_site_a.jsp,IE会提示错误“没有权限”
在Firefox浏览器中,根本无法正常执行,会报异常:uncaught exception: Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
我们不能期待用户能为我们改变什么,只能在程序上面做文章。
三、script标签是可以跨域的。
编写script_on_site_a.jsp:
<mce:script src="http://www.b.com:8888/crossdomain/page_on_site_b.jsp" mce_src="http://www.b.com:8888/crossdomain/page_on_site_b.jsp"></mce:script> //用于引入其他站点资源。至于是js还是jsp无所谓。
<mce:script type="text/


相关文档:

在 vs2008为asp.net ajax添加js智能感知


vs2008为asp.net ajax添加js智能感知



今天找了好久,终于搞清楚了,scriptManager控件支持js智能感知,而从其继承的toolkitScriptManager不支持。至少在
vs2008b2中是这样。
要在js文件中添加asp.net ajax的js智能感知(与scriptManager控件无关),在js文件的开头添加这样一行即可:
//
/<referen ......

Google AJAX 语言 API 翻译代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> ......

对Ajax的一些基本理解

一、ajax的入门
  1、XMLHttpRequest对象的使用(使用XMLHttpRequest解析xml文件)
 onreadystatechange
指定当readyState属性改变时的事件处理句柄
 open()
创建一个新的http请求,并指定此请求的方法、URL等信息
 send()
发送请求到http服务器并接收回应
 readyState
&nb ......

ajax post example

<mce:script type="text/javascript" language="javascript"><!--
var http_request = false;
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (ht ......

Buffalo ajax实例

Buffalo是国人开发的Ajax框架
它可以使用户在js中调用java代码里的方法.
配置方法:
1. web.xml中配置相关servlet 如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号