jquery ajax请求成功,但是进入了success,但是返回的数据data为空

2024-05-22

1. jquery ajax请求成功,但是进入了success,但是返回的数据data为空

jquery ajax请求成功,进入了success,但是返回的数据data为空是因为设置出现问题,解决方法为:
1、创建基本的文件结构json_ajax.html和json_ajax.php,下载jquery.js。

2、如图编写json_ajax.html和json_ajax.php文件的编码。

3、在w(l)amp环境下运行json_ajax.html。

4、json_ajax.php,运行结果如图。

5、点击按钮,正常的运行结果如下图。


扩展资料
定义和用法:
ajaxSuccess() 方法在 AJAX 请求成功时执行函数。它是一个 Ajax 事件。
详细说明:
XMLHttpRequest 对象和设置作为参数传递给回调函数。
无论 Ajax 请求在何时成功完成 ,jQuery 都会触发该 ajaxSuccess 事件。在此时,由 .ajaxSuccess() 方法注册的任何函数都会被执行。
常用的setting有:
url:发送请求的地址;
method:请求的方法,如"POST"、"GET";
data:发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后面,POST请求作为表单数据;
dataType:预期服务器返回的数据类型。如果不指定,jQuery 将自动进行判断。

jquery ajax请求成功,但是进入了success,但是返回的数据data为空

2. $http的post请求出现响应为空,没有调用后台的方法?

你把 xhr.open ... 最后面那个true改为false就OK了。
这个参数如果为true,那就是异步调用,xhr会不等后台服务器返回数据就继续往下运行,这个时候如果直接获取它的返回值那肯定就是空的。必须通过回调函数才能取得真正的返回值。
如果改为false,那就是同步调用,xhr会等到服务器返回数据后才继续往下执行,这时候就可以直接获取到返回值了。缺点就是页面会在这段时间内出现卡顿现象,如果后台出现错误迟迟没有返回数据,那么页面就会卡住了。
至于alert的问题,它打开的是系统级的模态对话框,这时候这个页面会被挂起, 也就是说程序会处在暂停执行状态,这时候如果后台服务器返回数据,而前端的js代码却由于暂停无法接收,所以就没有返回信息咯。因此,在程序调试阶段尽量避免用alert来输出测试数据,应该用console.log

3. jQuery的$.post中function(data)返回的数据 要怎么取出来用啊

你把你的数组返回值中间用个符号分割,比如分号["a1","b1"];["a2"',"b2"],然后用split{";"}进行分割就可以分开使用了。
var t = "['a1','b1'];['a2'','b2']";
var ts = t.split(";");
alert(ts[0]);
alert(ts[1]);


下面这个写法写错了
function initialize(cc) {
var html;
$.post("some1.php",{value:cc},function(data){var html=data;},"json");
alert(html);
}
不应该在function(data)里面申明var html,否则html会变成这个方法的体局部变量。你应该改成。
function initialize(cc) {
var html;
$.post("some1.php",{value:cc},function(data){html=data;},"json");
alert(html);
}
但是即便这样改了,alert(html)仍然是空。
你还没有搞清楚ajax的逻辑。ajax是异步的。function(data)里的内容是延迟执行,在你最后alert(html)的时候,function(data)还没有执行,所以alert(html)永远是空。

jQuery的$.post中function(data)返回的数据 要怎么取出来用啊

4. 使用jquery的ajax的jsonp类型跨域请求数据、始终获取不到返回数据呢

使用jquery的ajax的jsonp类型跨域请求数据、始终获取不到返回数据是设置错误造成的,解决方法为:
1、创建基本的文件结构json_ajax.html和json_ajax.php,下载jquery.js。

2、如图分别编写json_ajax.html和json_ajax.php文件的编码。

3、分别在w(l)amp环境下运行json_ajax.html和json_ajax.php。

4、经过源码和运行结果的分析,知道了在json_ajax.html中设置了按钮的点击事件,点击按钮。

注意事项:
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

5. 用ajax的post请求,.fail被执行了,但是后台数据却修改成功了,这是神马情况?

1、猎人去打猎,打中了大雁,最后没得到它,不在于大雁本身中没中枪,在于它到猎人之间的路太曲折,没找到。
2、对于前台来说,只要后台报错,它就执行fail分支。而不管,后台干了什么。好比只要找不到猎物,猎人就算失败,而不管猎物死没死。
3、后台报错的地方可以在数据库操作的后面,所以数据库操作完成了,但后续步骤出错了。好比猎物中枪了,猎物到猎人之间的路断了
4、我大概模拟一下你的后台程序,判断你的错误大概位置:
        ·····
        service.doDataBase();//对数据库操作
        ····
        doSomething//在这儿出错了
        return  json

用ajax的post请求,.fail被执行了,但是后台数据却修改成功了,这是神马情况?

6. thinkphp用$.post发送到后台的数据打印出来是空数组。求解决。。。在线等。。。。。。。。

你是ajax传递值给后台,那么你应该在触发这个事件的时候看一下浏览器的控制台中,有没有数据返回

7. 为什么我post请求后台数据,回调的结果只有一个

是的,在后台输出结果 ,在前台的success里接收, success: function(data) { alert(data); }

为什么我post请求后台数据,回调的结果只有一个

8. html 用 post 提交数据 为什么 第一次提交获取到的值为NULL?

要确认在提交前是否赋值了。
var _name = 'This is Name.';//var _name = $('#name').val();//alert(_name);//注意这里有没有值,保险的做法就是alert一下$.ajax({    type: 'post',    url: 'xxAction',    dataType: 'json',    data:{        name: _name    },    success: function (data) {         alert("success");    },    error: function(){        alert("error");    } });如果提交时有值,后台就能获取到。