解决ajax回调函数返回的字符串乱码问题
找到问题了:
1、ajax请求失败,提示parsererror(到complete回调函数里看),所以不会执行success回调函数;
2、parsererror也就是说明数据解析出错了,也就是返回的数据格式有问题。post请求设置的格式是json,实际上返回的不是json;
实际返回的数据如下:
注意红色的部分,数据被压缩过了,当作json解析自然会出错;
3、如果把 post请求最后的 ‘json’ 参数去掉,会发现可以进入 success 回调函数,但此时response是个字符串而不是js对象,而且开头好像还有两个乱码,response.contents 成了 undefined。
--------
所以问题根源是:
服务端返回的是gzip压缩后的数据,不是json字符串。
问题就是这样的,解决方法考题主自己了。jqueryajax怎么获得返回的responseheaders
回调函数的第三个参数,里面有getResponseHeader方法和getAllResponseHeaders方法。$.ajax({type: "post",url: url,data:data,success: function (data,status,xhr) {xhr.getAllResponseHeaders();xhr.getResponseHeader('content-type');}})
ajax返回数据正确时返回码是多少
ajax请求成功并返回数据后会调用success回调函数,失败的时候会调用error函数。一般error函数才会返回错误代码。success的时候貌似没有返回码,这没意义的。
前端访问数据库是不是用的ajax技术
前端访问数据库通常使用的是 Ajax 技术,但这并不是唯一的方式。
Ajax(Asynchronous JavaScript and XML)是一种用于在不刷新整个网页的情况下,通过发送异步请求与服务器进行数据交换的技术。它可以通过 JavaScript 与后端进行通信,包括请求数据和将数据发送回服务器等操作。前端开发人员可以使用 Ajax 来发送数据库查询请求,并将查询结果展示在网页上的动态内容当中。
然而,前端访问数据库还可以使用其他技术和方法,具体取决于应用程序的需求和开发人员的选择。一些常见的前端访问数据库的方式包括:
1. RESTful API:使用 RESTful API 可以使前端通过 HTTP 请求与后端数据库进行交互。
2. GraphQL:GraphQL 是一种用于数据查询和操作的查询语言,可以使前端精确地定义需要从数据库中获取的数据。
3. WebSocket:WebSocket 是一种双向通信协议,可以在前端和后端之间建立持久连接并实时传输数据,其中也包括数据库查询和更新等操作。
4. 前端框架的内置方法:一些前端框架(如 Angular、React 和 Vue)提供了内置的方法和工具,使开发人员可以方便地与后端数据库进行交互。
因此,尽管 Ajax 是前端访问数据库的常见方式之一,但开发人员也可以选择其他合适的技术来满足项目需求。
还没有评论,来说两句吧...