【问题标题】:I have this error Synchronous XMLHttpRequest ajax我有这个错误同步 XMLHttpRequest ajax
【发布时间】:2018-08-21 22:22:37
【问题描述】:
    {   jQuery(document).ready(function(){

    var scegli = '<option value="0">Scegli...</option>';
    var attendere = '<option value="0">Attendere...</option>';

    jQuery("select#province").html(scegli);
    jQuery("select#province").attr("disabled", "disabled");
    jQuery("select#comuni").html(scegli);
    jQuery("select#comuni").attr("disabled", "disabled");


    jQuery("select#regioni").change(function(){
        var regione = jQuery("select#regioni option:selected").attr('value');
        jQuery("select#province").html(attendere);
        jQuery("select#province").attr("disabled", "disabled");
        jQuery("select#comuni").html(scegli);
        jQuery("select#comuni").attr("disabled", "disabled");

        jQuery.ajax({
            type:"POST",
            url:"select.php", 
            dataType: 'text',
            data: {id_reg:regione}, 
            success: function(data){
            jQuery("select#province").removeAttr("disabled"); 
            jQuery("select#province").html(data);       
        },
        async:false
        });
    }); 

    jQuery("select#province").change(function(){
        jQuery("select#comuni").attr("disabled", "disabled");
        jQuery("select#comuni").html(attendere);
        var provincia = jQuery("select#province option:selected").attr('value');

            jQuery.ajax({
            type:"POST",
            url:"select.php", 
            dataType: 'text',
            data:  {id_pro:provincia}, 
            success: function(data){
            jQuery("select#comuni").removeAttr("disabled");
            jQuery("select#comuni").html(data);     
        },
        async:false
        });

    }); 
});}

错误是这样的:

[弃用] 主线程上的同步 XMLHttpRequest 已弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看https://xhr.spec.whatwg.org/

错误在哪里?谢谢

【问题讨论】:

    标签: ajax runtime-error


    【解决方案1】:

    错误是指这两行

    异步:假

    一旦你设置了 async false,这个 Xmlhttprequest 就会变成同步的,这意味着线程将等待 ajx 请求完成后再继续。

    这一直在考虑不好的做法,并逐渐被 Chrome 和其他人弃用。

    【讨论】:

    • 感谢回复,我尝试设置async:true,但问题依旧,我哪里错了?
    • hi , jQuery.ajax({ type:"POST", url:"select.php", dataType: 'text', data: {id_pro:provincia}, 成功: function(data){ jQuery("select#comuni").removeAttr("disabled"); jQuery("select#comuni").html(data); }, async:true });
    • @GianfrancoCalabrese 两个 Ajax 都更改为 async true?你有两个 ajax 方法
    • 是的,在这两种情况下,问题可能出在本地主机上?
    • [link] (test.murimani.it/pillole/…) 字段为 COM_PILLOLE_REG_USER_REGIONE
    【解决方案2】:

    您必须在代码中使用全局异步函数并像这样调用 ajax 方法:

    async function fun() {
        ...
        await $.ajax({
            ...
    

    它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 2020-04-24
      • 2016-01-30
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多