`

jquery 1.4中ajax的dataType设置问题

阅读更多
今天遇到的一个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.
分享到:
评论
1 楼 hiveer 2014-05-25  
我测试了下 默认是*/*

相关推荐

    jquery1.4 教程二 ajax方法的改进

    在jQuery 1.4中,AJAX请求可以不再需要显式地设置dataType为"json"或"javascript"。AJAX方法会自动根据服务器返回的内容类型头部(content-type)来判断数据类型。如果服务器返回的是"application/json"或...

    JQuery_1.4_API (chm中文版)

    jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript编程,特别是在处理网页中的DOM操作、事件处理、动画效果和Ajax交互方面。`jQuery_1.4_API (chm中文版)` 提供的是jQuery 1.4版本的官方API文档的中文...

    JQuery_1.4_API资料

    **jQuery 1.4 API 知识点详解** jQuery 是一个高效、易用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画设计和Ajax交互。本篇文章将聚焦于jQuery 1.4 API,这个版本在当时引入了许多新特性、改进和...

    ajax框架jquery_1.4.3包含压缩版和未压缩版

    jQuery的出现极大地降低了开发人员使用Ajax的门槛,让开发者无需深入理解底层的XMLHttpRequest对象即可轻松实现Ajax功能。 **jQuery 1.4.3 版本详解** jQuery 1.4.3 是该库的一个稳定版本,发布于2010年。这个版本...

    JQuery_1.4_API.rar

    **jQuery 1.4 API 知识点详解** jQuery 是一个高效、易用且功能丰富的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作和Ajax交互。jQuery 1.4 API 是该库在2010年发布的一个版本,提供了丰富的函数...

    jquery1.x升级到最新版3.6,兼容旧版插件.zip

    在进行jQuery版本升级时,特别是从1.x跳跃到3.x,可能会遇到兼容性问题,因为新版本中删除了一些过时的API和功能。此时,"jquery-migrate-3.3.2.js"就起到了关键作用。 "jquery-migrate-3.3.2.js"是jQuery官方提供...

    jQuery 1.6 API 中文版

    看jQuery.ajax( settings )下所有设置的完整列表。 version added: 1.0jQuery.ajax( settings ) settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。 ...

    jQuery ajax总结

    1.4 同步调用,实时获取返回结果在jQuery的ajax方法中,可以通过设置`async`参数为`false`来实现同步调用,这样可以确保在获取到服务器响应之前,后续的代码不会被执行。但是需要注意,同步调用会阻塞浏览器,可能...

    JQuery 的自学教材,包会

    压缩包中的`JQuery_1.4_API.CHM`是jQuery 1.4 版本的API 帮助文档,包含了详细的方法、属性和事件说明,是学习和查阅的好帮手。尽管版本较旧,但基本概念和大部分方法在新版本中仍然适用。 **六、实战应用** `...

    jquery 1.7 中文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非常有...

    Jquery API

    1.6版本中,`.ajax()`的`dataType`选项更加完善,可以自动处理JSONP请求。 ### 6. 插件生态 jQuery拥有庞大的插件生态系统,如jQuery UI提供丰富的用户界面组件,jQuery Validate用于表单验证,以及众多的动画和...

    Jquery API大全

    本文将详细探讨jQuery 1.2、1.3和1.4版本中的主要API功能。 ### 1. jQuery选择器 jQuery的选择器基于CSS,让开发者能够轻松地选取DOM元素。例如: - `$("#id")`:选取ID为"id"的元素。 - `$(".class")`:选取所有...

    jquery学习(适用广大学习人群)

    jQuery的`$.ajax()`函数是进行异步数据请求的核心方法,它可以处理XMLHttpRequest对象的所有细节: ```javascript $.ajax({ url: 'your-url', type: 'GET', dataType: 'json', success: function(data) { // ...

    jQuery使用ajax方法解析返回的json数据功能示例

    在使用$.ajax()方法时,如果需要处理服务器返回的JSON数据,可以设置dataType为"json"。jQuery会自动将返回的JSON字符串转换为JavaScript对象。但如果服务器返回的不是标准的JSON字符串,或者有特殊的格式要求,那么...

    jquery.post用法关于type设置问题补充

    在jQuery中,`$.post` 是一个非常常用的Ajax方法,用于向服务器发送异步POST请求。这个方法在处理数据返回时有一些需要注意的地方,特别是在不同版本的jQuery之间,其行为可能会有所变化。本篇文章将深入探讨`$.post...

    探讨Ajax中的一些小问题

    1.ajax跨域传递值是所需要的回传的类型为jsonp $.ajax({ ...type: 'GET', dataType: 'JSONP',//...在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据 这个值解

    jquary_API

    提供的文件列表中包含JQuery_1.4_API.CHM和jquery-1.4.2.min.js,这表明我们讨论的是jQuery 1.4版本。尽管jQuery已经发展到更高的版本,但1.4版本仍然有其价值,特别是在兼容旧项目或对性能要求较高的场景下。1.4版...

    ajax不执行success回调而是执行了error回调

    2. dataType为"json"时的问题:在jQuery的ajax中指定dataType为"json"时,jQuery会尝试将返回的数据解析为JSON格式的JavaScript对象。在jQuery 1.4及以上版本中,对JSON格式的要求变得更为严格。服务器端返回的数据...

Global site tag (gtag.js) - Google Analytics