同步提取以替换同步 AJAX



我知道不建议进行同步调用,但我必须在 ajax 中进行同步调用,因为我正在处理一个需要用户操作才能获得响应的设备。到目前为止,我在下面的 ajax(( 代码一直运行良好。我收到警告"主线程上的同步 XMLHttpRequest 已被弃用"。同步调用返回响应(来自设备(,我将其传递给我的第二个调用并生成输出:

<script>		
var result = $.ajax({
    url: 'url',
	async: false,
	type: "GET"
}).responseText;
$(document).ready(function() {   
    $.post("https://example.com/doit.php", {
        response: result,account: <?php echo $account ?>,dn:<?php echo $dn ?>, mode:<?php echo $dest ?>},function(data){document.write(data);});
    });
</script>

如何更改同步调用以保持其工作。

试试这个

<script>
    $(document).ready(function(){   
        $.ajax({
          url: 'url',
          type: "GET",
          success: function(r){
             var result = r.responseText;
             $.post("https://example.com/doit.php",{response: result,account: <?php echo $account ?>,dn:<?php echo $dn ?>, mode:<?php echo $dest ?>},function(data){document.write(data);});
          }
        });
    });
</script>

get 的成功回调中执行您的 post 请求:

$.ajax({
    url: 'url',
    type: "GET"
})
    .then(function(responseText) {
        return $.post(...)
    })
    .then(function(postResponse) {
        ..do whatever
    })

最新更新