0

我正在使用带有 JS 的 Springer OpenAccess API,它们以多种方式提供数据,其中一种是 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

你不能做同步 JSONP 因为jQuery doc 说

异步

...跨域请求和dataType:“jsonp”请求不支持同步操作...

您必须进行异步操作并使用回调。

于 2012-05-01T09:44:45.057 回答