如何在$ .post jQuery中等待响应

her*_*ron 6 javascript ajax jquery post

PHP以1-2秒延迟返回值jQuery.post不等待响应.

您如何看待,是否有可能解决该问题并等待响应?

    $.post( sSource, aoData, function (data) {    
        oCache.lastJson = jQuery.extend(true, {}, data);
        if ( oCache.iCacheLower != oCache.iDisplayStart )
        {
            data.aaData.splice( 0, oCache.iDisplayStart-oCache.iCacheLower );
        }
        data.aaData.splice( oCache.iDisplayLength, data.aaData.length );
         abc(oCache);
        fnCallback(data); 
    },"json" );
Run Code Online (Sandbox Code Playgroud)

请注意相同的功能与get工作正常

    $.getJSON( sSource, aoData, function (json) { 
        /* Callback processing */
        oCache.lastJson = jQuery.extend(true, {}, json);

        if ( oCache.iCacheLower != oCache.iDisplayStart )
        {
            json.aaData.splice( 0, oCache.iDisplayStart-oCache.iCacheLower );
        }
        json.aaData.splice( oCache.iDisplayLength, json.aaData.length );

        fnCallback(json)
    } );
Run Code Online (Sandbox Code Playgroud)

Vit*_*aly 19

$ .post是异步的,你需要使用$ .ajax并将async设置为false,这样你就可以等待响应了.你可以在这里阅读更多相关信息:http://api.jquery.com/jQuery.ajax/

  • 所有速记ajax方法-.load()、. get()、. post(),getJSON()和getScript()都是异步的。这样,可以说它们全部“等待服务器响应”。AFAIK只有.ajax()本身和asynch:false才是异步的,但绝不应该使用,因为并非所有浏览器都支持它。 (2认同)
  • 那么,解决方案是什么? (2认同)