今天遇到的一个ajax的dataType问题,请求成功时后台返回了一个字符串“true”,前台接收判断条件不成功。js代码如下:
function sendReplacePayUrl(){
var friendMail = $('#friendMail').val();
var leaveMessage = $('#leaveMessage').val();
$.ajax( {
type : "POST",
url : basePath+"/**/**/****.sc",
data : {
"friendMail": friendMail,
"leaveMessage": leaveMessage
},
success : function(data) {
if(data=="true"){
alert("邮件发送成功!");
}else{
alert("邮件发送失败!");
}
}
});
}
跟踪结果后台返回了“true”后,js弹出的框一直是提示 邮件发送失败! 的信息,在前台JS中加入 alert(data);弹出的结果确认是“true”,一直认为方法有问题,检查对比其他测试成功过方法,发现并没有错误。开始怀疑是 data 的接收类型有问题,百度了一下,说如果没有设置dataType,默认的类型就是 text,接收字符串直接判断显示是没有问题,但奇怪我写的这个方法为什么不行呢? 查看代码,在这步之前还有一个ajax的请求,js如下:
function friendPay(){
var id = $('#combineId').val();
var payurl = '获取地址失败';
$.ajax( {
type : "POST",
url : basePath+"/**/**/****.sc",
data : {
"combineId": id
},
dataType : "json",
success : function(data) {
payurl =data.payUrl
//省略
...
}
});
}
friendPay()函数执行后弹出框之后点击弹出框中的按钮执行sendReplacePayUrl(),猜想是不是因为之前执行friendPay()时设置了dataType : "json"的原因,导致之后执行sendReplacePayUrl()没有设置dataType,返回的数据类型默认之前设置的dataType : "json"。为了验证这点,把friendPay()中dataType : "json",去除,sendReplacePayUrl()不变,重新执行后,sendReplacePayUrl()接收data判断正常;之后再验证,将friendPay()中dataType : "json"再加上,在sendReplacePayUrl()中加上dataType : "text",重新执行后,sendReplacePayUrl()接收data判断正常。
通过上面的验证,个人得出的结论,
jquery 1.4中ajax的dataType如果没有设置,默认返回的data 就是text类型,注意前提是,在这ajax之前上一步执行的ajax方法中datatype也必须是默认的或是设置为 text, 若上一步执行的ajax的dataType不是text,则之后想要返回的data与上一步不同的类型,则需要在方法中添加相应的dataType.
分享到:
相关推荐
在jQuery 1.4中,AJAX请求可以不再需要显式地设置dataType为"json"或"javascript"。AJAX方法会自动根据服务器返回的内容类型头部(content-type)来判断数据类型。如果服务器返回的是"application/json"或...
jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript编程,特别是在处理网页中的DOM操作、事件处理、动画效果和Ajax交互方面。`jQuery_1.4_API (chm中文版)` 提供的是jQuery 1.4版本的官方API文档的中文...
**jQuery 1.4 API 知识点详解** jQuery 是一个高效、易用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画设计和Ajax交互。本篇文章将聚焦于jQuery 1.4 API,这个版本在当时引入了许多新特性、改进和...
jQuery的出现极大地降低了开发人员使用Ajax的门槛,让开发者无需深入理解底层的XMLHttpRequest对象即可轻松实现Ajax功能。 **jQuery 1.4.3 版本详解** jQuery 1.4.3 是该库的一个稳定版本,发布于2010年。这个版本...
**jQuery 1.4 API 知识点详解** jQuery 是一个高效、易用且功能丰富的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作和Ajax交互。jQuery 1.4 API 是该库在2010年发布的一个版本,提供了丰富的函数...
在进行jQuery版本升级时,特别是从1.x跳跃到3.x,可能会遇到兼容性问题,因为新版本中删除了一些过时的API和功能。此时,"jquery-migrate-3.3.2.js"就起到了关键作用。 "jquery-migrate-3.3.2.js"是jQuery官方提供...
看jQuery.ajax( settings )下所有设置的完整列表。 version added: 1.0jQuery.ajax( settings ) settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。 ...
1.4 同步调用,实时获取返回结果在jQuery的ajax方法中,可以通过设置`async`参数为`false`来实现同步调用,这样可以确保在获取到服务器响应之前,后续的代码不会被执行。但是需要注意,同步调用会阻塞浏览器,可能...
压缩包中的`JQuery_1.4_API.CHM`是jQuery 1.4 版本的API 帮助文档,包含了详细的方法、属性和事件说明,是学习和查阅的好帮手。尽管版本较旧,但基本概念和大部分方法在新版本中仍然适用。 **六、实战应用** `...
`jQueryAPI-1.41.chm`包含了jQuery 1.4.1版本的API文档,可以作为对比学习,了解1.7版本相对于1.4版本的变化。`jquery1.7.2_20120420中文版.chm`是jQuery 1.7.2版本的中文API手册,对于学习和查阅1.7版本的API非常有...
1.6版本中,`.ajax()`的`dataType`选项更加完善,可以自动处理JSONP请求。 ### 6. 插件生态 jQuery拥有庞大的插件生态系统,如jQuery UI提供丰富的用户界面组件,jQuery Validate用于表单验证,以及众多的动画和...
本文将详细探讨jQuery 1.2、1.3和1.4版本中的主要API功能。 ### 1. jQuery选择器 jQuery的选择器基于CSS,让开发者能够轻松地选取DOM元素。例如: - `$("#id")`:选取ID为"id"的元素。 - `$(".class")`:选取所有...
jQuery的`$.ajax()`函数是进行异步数据请求的核心方法,它可以处理XMLHttpRequest对象的所有细节: ```javascript $.ajax({ url: 'your-url', type: 'GET', dataType: 'json', success: function(data) { // ...
在使用$.ajax()方法时,如果需要处理服务器返回的JSON数据,可以设置dataType为"json"。jQuery会自动将返回的JSON字符串转换为JavaScript对象。但如果服务器返回的不是标准的JSON字符串,或者有特殊的格式要求,那么...
在jQuery中,`$.post` 是一个非常常用的Ajax方法,用于向服务器发送异步POST请求。这个方法在处理数据返回时有一些需要注意的地方,特别是在不同版本的jQuery之间,其行为可能会有所变化。本篇文章将深入探讨`$.post...
1.ajax跨域传递值是所需要的回传的类型为jsonp $.ajax({ ...type: 'GET', dataType: 'JSONP',//...在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据 这个值解
提供的文件列表中包含JQuery_1.4_API.CHM和jquery-1.4.2.min.js,这表明我们讨论的是jQuery 1.4版本。尽管jQuery已经发展到更高的版本,但1.4版本仍然有其价值,特别是在兼容旧项目或对性能要求较高的场景下。1.4版...
2. dataType为"json"时的问题:在jQuery的ajax中指定dataType为"json"时,jQuery会尝试将返回的数据解析为JSON格式的JavaScript对象。在jQuery 1.4及以上版本中,对JSON格式的要求变得更为严格。服务器端返回的数据...