0

jsonp を使用した JQuery での ajax 呼び出しでタイミングの問題が発生しています。次に進む前に、サーバー呼び出しが戻るのを待つ必要があります。ただし、http://api.jquery.com/jQuery.get/には設定する場所がないようですasync。これが私のコードです:

        what = ZModel;
        jQuery.support.cors = true;
        var req = $.get( url, qp, function( stuff ) {
            if ( stuff.status == "OK" ) {
                what.metadata[i].model_name = stuff.datarows;
            } else {
                console.log("...LOAD QUERY ERROR: " + stuff.errtext + "; qs: " + thing.qs);
            }
            alert("success in get");
        }, 'jsonp');
        req.error( function() {
            console.log("...LOAD AJAX ERROR: " + JSON.stringify(arguments));
        });

私も試し$.ajaxましたが、コードがヒットしませんsuccess。マンページには明確に記載されていますが、代替案がわかりませんでした。

同じことを達成する別の方法はありますか?

ありがとう

4

3 に答える 3

2

同期 JSONP を行うことは完全に不可能です。JSONP は<script>タグを作成することで機能します。<script>ブラウザは、タグを待つ方法を公開しません。

さらに、SJAX は決して良い考えではありません。サーバーが応答するまでブラウザがフリーズします。

非同期性を正しく使用する必要があります。
promise の使用を検討してください。

于 2013-06-09T02:11:40.287 に答える
0

もう 1 つのオプションは、UI をブロックすることです。

通話が終了するまで画面を「灰色」にするBlockUIなどを使用します。

于 2015-05-10T06:35:02.223 に答える
-1

.ajax 関数を使用します。

$.ajax({
    url: url,
    async:false,
    success:function (data) {
        // Something
    }
});
于 2013-06-08T12:12:14.353 に答える