I have following ajax function that behaves randomly. Sometimes alert success finally
is displayed. On other occasions, second alert that is Failure: my status is 500
is displayed.
我有跟随ajax函数,行为随机。有时最终会显示警报成功。在其他情况下,显示失败的第二个警报:我的状态为500。
promptId
is passed on from the calling function. I have checked the prompturl
and promptId
. A valid value of promptId
is displayed on both occasions (success and failure). Also the audio file that I am trying to play is played in both cases (success and failure). I can not figure out the cause for this random behavior of alerts being displayed.
promptId从调用函数传递。我检查了prompturl和promptId。两种情况下都会显示有效的promptId值(成功和失败)。我试图播放的音频文件也会在两种情况下播放(成功和失败)。我无法弄清楚显示警报的随机行为的原因。
If 500 error
is coming then it means , resource is not found, but my app is able to access the resource(that is playing the audio file).
如果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
}
}
Also to support different browser I am using:
还支持我使用的不同浏览器:
// 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;
}
Additional Info: I have multiple audio files. When I play an audio file the first time, I get the failure alert first time(even though audio is played), but during if I play it again, second time, success alert is displayed.
附加信息:我有多个音频文件。当我第一次播放音频文件时,我第一次收到故障警报(即使播放音频),但是如果我再次播放它,则第二次显示成功警报。
1 个解决方案
#1
0
Can you try this?
你能试试吗?
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);
}
#1
0
Can you try this?
你能试试吗?
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);
}