gpt4 book ai didi

javascript - Ajax 回调函数行为随机。我做错了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:12 25 4
gpt4 key购买 nike

我有以下行为随机的 ajax 函数。有时会显示警告 success finally。在其他情况下,第二次警报是Failure: my status is 500 显示。

promptId 从调用函数传递。我检查了 prompturlpromptId。有效值promptId 会在两种情况下(成功和失败)显示。此外,我尝试播放的音频文件在两种情况下都会播放(成功和失败)。我无法弄清楚显示这种随机警报行为的原因。

如果出现 500 错误,则表示未找到资源,但我的应用能够访问该资源(正在播放音频文件)。

function ajax_playPrompt(promptId) {
alert(promptId)


var playPromptUrl = soapUrl + "?action=playPrompt&promptId=" + escape(promptId) + "&parentSessionId=" + parentSessionId;
alert(playPromptUrl);
playPrompt_http_request = getNewHttpRequest('text/plain');
playPrompt_http_request.onreadystatechange = callback_ajax_playPrompt;
playPrompt_http_request.open("GET", playPromptUrl, true);
playPrompt_http_request.send(null);
}

function callback_ajax_playPrompt() {
if (playPrompt_http_request.readyState != 4) {
alert("Returning bcause not 4");
return;
}

if (playPrompt_http_request.status == 200) {
alert("Success finally");
}
else {
alert("Failure:My status is "+playPrompt_http_request.status ); // this gives status as 500
}
}

同时支持我使用的不同浏览器:

// to provide support for different browsers.
function getNewHttpRequest(contentType) {
var myRequest;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
myRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
myRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
if (myRequest.overrideMimeType) {
myRequest.overrideMimeType(contentType);
}
return myRequest;
}

附加信息:我有多个音频文件。当我第一次播放音频文件时,我第一次收到失败提示(即使播放了音频),但如果我再次播放,第二次,会显示成功提示。

最佳答案

你能试试这个吗?

function ajax_playPrompt(promptId) {
alert(promptId)
var playPromptUrl = soapUrl + "?action=playPrompt&promptId=" +
escape(promptId) + "&parentSessionId=" + parentSessionId;
alert(playPromptUrl);
var playPrompt_http_request = getNewHttpRequest('text/plain');
playPrompt_http_request.onreadystatechange = function {
if (playPrompt_http_request.readyState != 4) {
alert("Returning bcause not 4");
return;
}

if (playPrompt_http_request.status == 200) {
alert("Success finally");
} else {
alert("Failure:My status is "+playPrompt_http_request.status );
}
};
playPrompt_http_request.open("GET", playPromptUrl, true);
playPrompt_http_request.send(null);
}

关于javascript - Ajax 回调函数行为随机。我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23669436/

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