首页 教程 API文档

HTTP 请求加载远程数据

2015-09-17 09:25:19

属性


依赖模型 events
使用频率
复杂程度 中低
成员类型 静态模块

描述


ajax模块是用于异步获取指定url的内容的一个模块,它可以用于获取或者发送http数据.

Std.ajax方法接受一个Object参数.Std.ajax在创建时候无需使用 new Std.ajax 来创建实例,Std.ajax主函数在执行时会自动创建,并且返回实例对象.

(ajax数据请求仅在同域下才会发生作用,如果需要进行跨域请求,需要在服务端返回时候的http头上加上 Access-Control-Allow-Origin 属性.)

成员列表


方法名称 成员类型 描述
::hook static 添加Std.ajax全局钩子
::unhook static 移除Std.ajax全局钩子
::get static 发起http get请求
::post static 发起http post请求
::json static ajax json数据请求
::load static ajax http文件请求
init private 初始化XmlHttpRequest对象
send private 发送XmlHttpRequest请求
http public XmlHttpRequest对象
elapsed public ajax请求消耗的时间
status public ajax当前状态
statusText public ajax当前状态文本
type public 获取或 设置ajax请求方式
url public 获取或设置ajax的url地址
data public 获取或设置ajax要发送的数据
cache public 获取或设置ajax缓存
responseText public ajax响应文本
responseContentLength public 服务端回复的数据包长度
responseUrl public 服务端回复的url地址
responseHeader public 服务端回复的http头
requestHeader public ajax请求时候的http头
accept public ajax请求的accept头
start public 开始任务
stop public 停止任务
abort public 中止任务

语法



Object Std.ajax(Object option);
        

参数选项


名称 类型 描述
type String http请求类型,通常情况下为get或者post,默认为get
cache Boolean 是否缓存,默认为true(post类型无缓存)
async Boolean 是否为异步请求,默认为true,如果为false,则为同步请求
url String 要请求的url地址
data String,Array,Object 需要发送的数据,通常为post要提交的数据,默认为空
delay Number 延迟多少时间(毫米)之后再进行请求,默认为0,如果大于0
format String 格式化返回的responseText,类型可以为text,json,默认为text
polling Boolean 是否轮询请求(请求成功之后再次请求,直到手动调用stop方法),默认为false
timeout Number ajax超时时间,默认为0(不超时)
username String 如果http请求需要认证,那么该值将作为认证帐号
password String 如果http请求需要认证,那么该值将作为认证密码
dataType String

http头accept值,默认为*

该值可以为以下类型,或者自定义字符串

"text" 表示 "text/plain"

"html" 表示 "text/html"

"xml" 表示 "application/xml,text/xml"

"json" 表示 "application/json,text/javascript"

"script" 表示 "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"

charset String 数据编码,默认为UTF-8
contentType String 内容类型,默认为application/x-www-form-urlencoded; charset=UTF-8
requestHeader Object 请求时候需要额外发送的http头
success Function 请求成功时执行的回调函数
error Function 请求失败时执行的回调函数
timeout Function 超时时执行的回调函数
complete Function 请求完成时执行的回调函数
beforeSend Function 发送请求之前执行的回调函数
afterSend Function 发送请求之后执行的回调函数
readyStateChange Function 请求状态改变时执行的回调函数

事件


名称 回调参数 描述
readyStateChange http : XmlHttpRequest 对象 http读取状态改变
progress http : XmlHttpRequest 对象 ajax读取进度改变
success responseText : 服务端返回的数据,text文本,或者json对象,取决于format选项
error http : XmlHttpRequest 对象 ajax请求出错
complete http : XmlHttpRequest 对象 ajax请求完成
timeout http : XmlHttpRequest 对象 ajax请求超时
beforeSend 在http请求前触发的事件
afterSend 在http请求发送之后触发的事件

返回值


新创建的ajax对象

相关例子


http get 获取 /1.txt 文件内容

Std.ajax({
    url:"/1.txt",
    success:function(responseText){
        alert(responseText);
    }
});
        
http get 获取 /1.txt 文件内容,禁止缓存

Std.ajax({
    url:"/1.txt",
    cache:false,
    success:function(responseText){
        alert(responseText);
    }
});
        
http get 获取 /1.txt 文件内容,带上自定义header

Std.ajax({
    url:"/1.txt",
    requestHeader:{
        header1:"text"
    },
    success:function(responseText){
        alert(responseText);
    }
});
        
http post 发送数据到 /1.php

Std.ajax({
    url:"/1.php",
    type:"post",
    data:{
        name:"std.ajax",
        value:"test"
    },
    success:function(responseText){
        alert(responseText);
    }
});
        
http post 发送数据到 /1.php,并将内容格式化为json

Std.ajax({
    url:"/1.php",
    type:"post",
    format:"json",
    data:{
        name:"std.ajax",
        value:"test"
    },
    success:function(responseText){
        alert(responseText);
    }
});