jquery ajax的回调函数function()里面的参数可以使用哪些 又分别代表啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax的回调函数function()里面的参数可以使用哪些 又分别代表啥意思?相关的知识,希望对你有一定的参考价值。
参考技术A $.ajax(url,data,function(msg))msg
是代表服务器传来的是字符串。$.ajax(url,data,function(data))
data代表传来的是json
数据,要序列化之后才能拿到数据。$.ajax(url,data,function(data,
textStatus))
data
代表也是json
数据,textStatus
的值为success
代表连接成功,不是这个代表连接失败 参考技术B $.ajax(url,data,function(msg))与$.ajax(url,data,function(data))
是一个意思,都是表示传来的数据。只是取名不一样而已。$.ajax(url,data,function(data,
textStatus))
:这个地方的第一个是传来的数据,第二个是判断状态吧。参数其实是根据个人的需要而设定的。没有固定的。
jQuery .html() 的回调函数?
【中文标题】jQuery .html() 的回调函数?【英文标题】:Callback function for jQuery .html()? 【发布时间】:2012-06-25 02:32:11 【问题描述】:我有以下代码:
$.ajax(
type: 'GET',
url: 'index.php?route=checkout/onepagecheckout/getpaypaldata',
dataType: 'json',
success: function(json)
$('#pp_info').html(json['output']);
$('#payment').submit();
);
ajax 请求接收到一个 json 对象,其中包含一个 html 表单,例如:
<form id="payment" method="post" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_cart" name="cmd">
<input type="hidden" value="1" name="upload">
<input type="hidden" value="test@yahoo.ca" name="business">
<input type="hidden" value="Sample Item Name" name="item_name_1">
<input type="hidden" value="TESTI-1" name="item_number_1">
<input type="hidden" value="104.98" name="amount_1">
<input type="hidden" value="1" name="quantity_1">
<input type="hidden" value="0" name="weight_1">
<input type="hidden" value="Type" name="on0_1">
<input type="hidden" value="As Shown" name="os0_1">
<input type="hidden" value="Delivery Date" name="on1_1">
<input type="hidden" value="Jun 23,2012" name="os1_1">
<input type="hidden" value="Comments" name="on3_1">
<input type="hidden" value="test message" name="os3_1">
</form>
其中包含 PayPal 处理订单所需的信息。一切正常,除了我相信有时表单会在 jQuery .html 函数完成加载 html 内容之前提交。
.html 有回调函数吗?或我可以用来解决问题的任何其他方法? PayPal 数据以 HTML 表单的形式出现,我无法更改该部分,所以我只有一个选项,即以某种方式加载 html 内容并提交表单!
【问题讨论】:
首先响应不是json。这是 HTML 响应,请检查您的代码。 .html 方法应该是同步的。正如 UmeshA 指出的那样,您的问题可能是其他问题。 是json,唯一的就是html内容是以字符串的形式存储在jsonp['output']中的。 json 对象还包含一些其他信息。 这就是我所期待的,但如果我发出警报('bla bla'); 就会发生这种情况。在 .html() 和提交之间 .. 一切正常! 发生这种情况根本没有意义,但是 settimeout 应该可以解决它。setTimeout(function()$('#payment').submit();,0);
【参考方案1】:
你可以试试这个
success: function(json)
$('#pp_info').html(json['output']).promise().done(function()
$('#payment').submit();
);
【讨论】:
jQuery promise 和 detail. 以前没有听说过 promise()。打开一个充满可能性的世界! 这与 setTimeout(fn) 一样。 ***.com/questions/45085940/… html 方法没有回调,并且此承诺不等待 html 方法完成。它只是将回调推送到回调队列,这会导致它在附加的 html 中的 javascript 运行后运行。在这种情况下,setTimeout 会更加清晰,而不是让人们认为 .html() 可以有回调。以上是关于jquery ajax的回调函数function()里面的参数可以使用哪些 又分别代表啥意思?的主要内容,如果未能解决你的问题,请参考以下文章