标题: 请教一个ajax的简单问题
sxpo
新手上路
Rank: 1



UID 47
精华 0
积分 0
帖子 24
翻译 0
原创 0
阅读权限 10
注册 2007-5-29
状态 离线
发表于 2007-6-6 23:22  资料  短消息  加为好友 


QUOTE:
原帖由 cid73 于 2007-6-6 20:17 发表
实际上用整个文档向客户端传送一两个变量我个人觉得很不明智, 容易出错是一回事, 还有当你要传送的是一组很简单的变量你就不得不用 JSON 或 XML, 这样简单的问题就变复杂了.

因此我总是利用 header 来传送简单变量, ...

cid73老大 对不起
我试了半天
header()里面的参数我用javascript接收不到啊,你能再罗嗦一点么

顶部
cid73
版主
Rank: 7Rank: 7Rank: 7



UID 40
精华 2
积分 25
帖子 32
翻译 0
原创 0
阅读权限 100
注册 2007-5-23
状态 离线
发表于 2007-6-7 01:56  资料  短消息  加为好友 
一个简单示例, 实用中你应该尽量使用一个更好的抽象层如 prototype.js

<?php

define('MY_HEADER_NAME', 'Header-Contents');

if ( !empty($_GET['headerContents']) ) {
  header(MY_HEADER_NAME . ': ' . $_GET['headerContents']);
  exit;
}

?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> New Document </title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<script type="text/javascript">
if (window.ActiveXObject && !window.XMLHttpRequest) {
  window.XMLHttpRequest = function() {
    var msxmls = new Array(
      'Msxml2.XMLHTTP.5.0',
      'Msxml2.XMLHTTP.4.0',
      'Msxml2.XMLHTTP.3.0',
      'Msxml2.XMLHTTP',
      'Microsoft.XMLHTTP');
    for (var i = 0; i < msxmls.length; i++) {
      try {
        return new ActiveXObject(msxmls[i]);
      } catch (e) {
      }
    }
    return null;
  };
}

function getHeader(contents) {
  var url = '?headerContents=' + contents;
  var request = new XMLHttpRequest;
  request.onreadystatechange = function() {
    if ( request.readyState == 4 && request.status == 200 ) {
      alert(request.getResponseHeader('<?php echo MY_HEADER_NAME ?>'));
    }
  }
  request.open('GET', url);
  request.send(null);
}
</script>

</head>

<body>
<button onclick="getHeader('Tom')">Get Tom's Name</button>
<br />
<br />
<button onclick="getHeader('Alice')">Get Alice's Name</button>
<br />
<br />
<button onclick="getHeader('Jimi')">Get Jimi's Name</button>
</body>
</html>

你可以用一些工具如 Live HTTP Headers 来观察每一次请求所获得的 header 内容.

顶部
sxpo
新手上路
Rank: 1



UID 47
精华 0
积分 0
帖子 24
翻译 0
原创 0
阅读权限 10
注册 2007-5-29
状态 离线
发表于 2007-6-12 00:03  资料  短消息  加为好友 


QUOTE:
原帖由 cid73 于 2007-6-7 01:56 发表
一个简单示例, 实用中你应该尽量使用一个更好的抽象层如 prototype.js






New Document



if (window.ActiveXObject && !window.XMLHttpRequest) {
  window.XMLHttpRequest = function() {
    var msxmls = ...

感谢cid73老大,我看了好几天prototype.js 虽然还有很多不明白的地方,但也已经学到很多了,慢慢学
确实是个好东西,感谢您的推荐

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-9-7 07:02

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.010268 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver