gpt4 book ai didi

javascript - 对两个 ajax() 请求使用相同的回调会产生 "parsererror"

转载 作者:行者123 更新时间:2023-11-30 18:41:53 26 4
gpt4 key购买 nike

所以,我已经与 Javascript 斗争了一段时间,但我遇到了一个奇怪的错误,这可能很简单。我有一个像这样的 ajax 请求:

$.ajax({
url: 'http://www.hahaha.com/api/v3/acts',
crossDomain: true,
jsonpCallback: 'handlejson',
async: false,
jsonp: 'callback',
dataType: 'jsonp',
type: 'GET',
success: handleActs,
error: handleError
});

它工作正常并且调用回调没有问题。现在,如果我直接在下方添加此请求:

$.ajax({
url: 'http://www.hahaha.com/api/v3/performances',
crossDomain: true,
async: false,
jsonpCallback: 'handlejson',
jsonp: 'callback',
dataType: 'jsonp',
type: 'GET',
success: handlePerformances,
error: handleError
});

我在第一次请求时收到“parsererror”,第二次请求成功。任何人都知道为什么要这样做?一个 jsonpCallback 只能调用一个请求吗?

最佳答案

我认为让两个 AJAX 调用引用同一个 jsonpCallback 是行不通的 - 我认为 jQuery 在全局命名空间中放置了一个回调函数,然后在调用时删除它 - 所以它赢了' 等待第二组加载数据。我不认为这会影响 async 设置为 false ,但看起来确实如此。

起初我完全不明白你为什么要设置 jsonpCallback,但测试似乎表明你正在使用的 API 从回调名称中删除了除 [a-z] 之外的任何内容:(。所以你可以尝试使用 jsonpCallback在第一次调用中设置为 'handlejsona',在第二次调用中设置为 'handlejsonb'

这种方法似乎在这里工作:http://jsfiddle.net/nrabinowitz/H7zYt/

关于javascript - 对两个 ajax() 请求使用相同的回调会产生 "parsererror",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com