【问题标题】:JSONP Ajax calls not working parallelJSONP Ajax 调用不能并行工作
【发布时间】:2015-05-15 21:47:21
【问题描述】:

我有 Node.js 服务器和 jQuery ajax 请求。

这行得通:

api(config.categoriesURL, success, config.err1);
setTimeout(function () {
    api(config.randomURL, success1, config.err2);
},300);

但这不是:

api(config.categoriesURL, success, config.err1);
api(config.randomURL, success1, config.err2);

这是控制台输出:

url: http://localhost:3000/categories/?callback=myCallback&_=1431726147454
url: http://localhost:3000/random/?callback=myCallback&category=55564cc42e366b34aa9a529d&callback=myCallback&_=1431726147455
responseText: undefined
status: 200
text status: parsererror
error: Error: myCallback was not called'

这是服务器端还是客户端问题?知道为什么会发生这种情况以及我应该如何解决它?这是正常行为吗?

这里有更多代码:

ma​​in.js

$(document).ready(function() {

    var api = require('./api'),
    config = require('./config');

    function success (data) {
        data.forEach(function (category) {
            var div = document.createElement('div');
            div.id = category._id;
            div.textContent = category.name;
            $('.container').append(div);
        });
    }

    function success2 (data) {
        console.log(data);
    }

    api(config.categoriesURL, success, config.err1);
    api(config.randomURL, success2, config.err2);


});

api.js

function api(url, success, error) {
    $.ajax({
        type: 'GET',
        url: url,
        beforeSend: function (jqXHR, settings) {
            console.log('url: ' + settings.url);
        },
        jsonpCallback: 'myCallback',
        dataType: 'jsonp',
        success: success,
        error: error
    });
}

module.exports = api;

【问题讨论】:

  • 更多代码会很有用,在调用这些函数之前需要一些东西。
  • @Sidd,我更新了更多代码。如果您需要更多信息,请告诉我。

标签: javascript jquery ajax node.js browserify


【解决方案1】:

您应该尝试删除:

jsonpCallback: 'myCallback',

您正在同时进行两个 JSONP ajax 调用,它们对回调函数使用相同的名称。我认为这将是一个问题。

如果去掉jsonpCallback设置,jQuery会随机生成回调函数的名字。

【讨论】:

  • 酷!现在第一个 api 调用有效,但第二个给出了相同的解析器错误,它说 jQuery21404176367884501815_1431730654390 was not called
  • 我明白了。我将myCallback 硬编码到第二个网址。谢谢!
猜你喜欢
  • 2016-12-24
  • 2014-08-14
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多