0

私は JS で Springer OpenAccess API を使用しています。それらは多くの方法でデータを提供します。そのうちの 1 つは jsonp 形式です。私のコードを以下に示します。私が何をしても、同期して実行することはできませんでした。コールバックメカニズムは良い解決策ですが、この関数を同期的に実行する方法、またはこの関数を同期的に動作させる方法を学びたいです。

どんな助けでも大歓迎です。

 SpringerAPI.prototype.getArticleInfo = function(doi){
    //create  url of article according to given doi...
    var url = this.endpoint.host+this.endpoint.method+''+'?q=doi:'+doi+'&api_key='+this.endpoint.apikey+"&callback=?";
    //get information about article...      
    //perform async request to the Springer API
    this.situation = true;
    var article;
    jQuery.ajax({
      method:'POST',
      url: url,
      dataType: 'JSON',
      cache: true,
     async: false, // to set local variable
     success: function(data)
     {
        article = FromSpringerToArticle(data,-1);
     }
    });


    return article;
};
4

1 に答える 1

4

jQueryのドキュメントにあるため、同期JSONPを実行できません

非同期

... クロスドメイン リクエストと dataType: "jsonp" リクエストは同期操作をサポートしていません...

非同期操作を行い、コールバックを使用する必要があります。

于 2012-05-01T09:44:45.057 に答える