‘壹’ ajax请求接口怎么获得返回数据
首先要明白ajax的基本格式,参考下面的内容,可以发现,success是请求成功后服务器返回的数据,接收只需要把回调函数的值处理就可以了,如:
response:即为服务器返回的数据
....
success:function(response){
console.log(response);
}
.....
如果response的个数据:{"id":"123","name":"jghdream"}
取值的时候可以这样做:
varid=response.id;
varname=response.name;
以下是ajax的一些参数:
$.ajax({
type:'post',
url:'/testajax.php',
dataType:'json',
data:{uid:uid,rands:Math.random()},
success:function(){
alert('ajaxreturnsuccess');
}});
url,类型:String,默认值: 当前页地址。发送请求的地址
data,类型:String,发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'
dataType,类型:String,预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 javaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
success,当请求之后调用。传入返回后的数据,以及包含成功代码的字符串
‘贰’ ajax 返回值为字符串,转换成数组
你用string的split()方法就可以转换成数组:
vars="['赵鹏'],['男'],['及格']";
varss=s.split(",");
‘叁’ php怎么返回一个字符串给ajax
新建一个页面b.php,ajax请求这个页面 ,b.php用来文件流来读取aa.php 里面的文本,然后b.php返回这个文件流的数据
$(document).ready(function(){
$(":button").click(function(){
$.ajax({
url:'b.php',
type:'get',
data: 'do=test&name=必优博客',
success:function(responseText){
alert(responseText);
$("#aa").html(responseText);
}
});
});
});
b.php
$path = "aa.php"
<%php
$file_handle = fopen($path, "r");while (!feof($file_handle)) { $line = fgets($file_handle); echo $line;}
fclose($file_handle);
%>
‘肆’ ajax请求返回数组的字符串,结果success的data是类型
转换成JSON对象后,直接用访问数组的方式访问。
加入返回的JSON字符串为:{"name":'a',"age":"10"}
12345success:function(data){ var responseData =eval(data);//JSON字符串转换为JSON对象 alert("姓名:"+responseData.name); alert("年龄:"+responseData.age);}
‘伍’ 怎么解析ajax返回的json字符串
jquery中
$.ajax(function(){
url:"test.action",
success:function(data){
//data的如字符串形式如:【{id:1,name:Tom},{id:2,name:Jack}】
//方式一(建议使用)
var dataObj = JSON.parse(data);
//方式二(不建议使用,如果data中有可执行的代码,如i++之类的,
// eval为javaScript中的函数,它会执行i++之类的代码,这样很危险,data中可能会包含恶意代码。)
var dataObj = eval('(‘+data+’)');
//输出Tom
dataObj[0].name
}
});
其他方式:subString()截取字符串。
‘陆’ ajax请求json返回的是字符串不是对象
你去问一下这个api开发的人员 看是否是由于什么特殊需求 如果没有则可能是写错或误写了什么东西 导致返回字符串 因为你说了其他url没问题 ajax就是那么访问的怎么返回返回什么是服务器决定的
‘柒’ Ajax向服务器发送请求和接收返回的信息
Ajax向服务器发送请求
Ajax对象创建完成后,下面就要讲解一下Ajax如何使用。首先详细讲解一下Ajax向服务器发送请求所需的两个方法,具体如下:
(1)open()方法
open()方法用于创建一个新的HTTP请求,并指定此请求的类型(如GET、POST等)、URL以及验证信息,其声明方式如下所示:
在上述声明中,method用于指定请求的类型,其值可为POST、GET、PUT及PROPFIND,大小写不敏感;URL表示请求的地址,可以为绝对地址也可以为相对地址,并且可以传递查询字符串。其余参数为可选参数,其中,asyncFlagy用于指定请求方式,同步请求为false,默认为异步请求true;userName用于指定用户名,password用于指定密码。
(2)send()方法
send()方法用于发送请求到HTTP服务器并接收回应。其声明方式如下所示:
在上述声明中,content用于指定要发送的数据,其值可为DOM对象的实例、输入流或字符串,一般与POST请求类型配合使用,需要注意的是,如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。
需要注意的是,在使用GET方式传递特殊字符或中文参数时,要使用JavaScript中的encodeURIComponent()函数将其转换成“%十六进制数”的形式,防止在某些浏览器(如IE浏览器)中中文乱码的问题。
Ajax接收服务器返回的信息
了解Ajax向服务器发送请求后,下面将对Ajax如何接收服务器返回的信息(例如,HTML标签、CSS样式、字符串、XML、JSON等),进行详细讲解。具体如下:
(1)readyState属性
readyState属性用于返回Ajax的当前状态,状态值有5种形式,具体如表所示。
(2)onreadystatechange属性
onreadystatechange事件属性用于感知readyState属性状态的改变。为了大家更好的理解这两个属性的使用,下面创建一个服务器端的文件index.php,用于输出字符串,然后在浏览器端index.html中向服务器端发送请求,并在控制台输出状态值。具体示例如下所示:
创建服务器端文件:index.php
创建浏览器端文件:index.html
在浏览器中访问客户端文件,按“F12”键,切换到控制台,查看输出结果,具体如下图所示。
从图中可以看出,通过onreadystatechange事件属性可以清晰的感知Ajax状态的改变,同时使用readyState获取转变后的状态值。例如Ajax从0(未初始化)状态变成1(初始化)状态值时,Ajax此时的状态值为1。
(3)status属性
status属性用于返回当前请求的HTTP状态码,常见的状态码如表所示。
值得一提的是,在感知当前Ajax对象状态时,为了追求程序的严谨性,需要同时判断当前HTTP状态status是否等于200(请求成功)。
需要注意的是,Ajax中的statusText属性,仅当数据发送并接收完毕后,才可以获取当前请求的响应状态。
(4)获取响应信息的相关属性
当数据接收完毕且请求服务器的请求成功时,即可以使用Ajax中提供的相关属性获取服务器的响应信息。具体的属性及相关说明如下表所示。
在上表中,responseText属性用于返回文本格式的响应数据;属性responseBody表示直接从服务器返回并未经解码的二进制数据;responseXML属性用于接收XML数据格式的响应数据。
‘捌’ jquery通过ajax调用php取得返回值
返回数据代码如下:
‘玖’ thinkphp中怎么返回json数据
使用thinkphp框架开发,不知道如何返回JSON字符串,ajax无法调用 有三种方式可以返回
1、若是数据库实体,可以使用toJson()方法
$user = User::get(1); echo $user->toJson();2、若非数据库实体,可以使用json view方法,thinkphp除了实现response对象,还实现了jsonResponse若非数
$data = [ 'result'=>'success', 'msg'=>'操作成功!' ]; //class Json extends Response
return json($data);
3、若非数据库实体,可以使用json_encode()方法:
$data = [ 'result'=>'success', 'msg'=>'操作成功!' ];
return json_encode($data);
thinkphp5 ajax如何返回json