Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果对ajax结果有其他影响_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 如果对ajax结果有其他影响

Javascript 如果对ajax结果有其他影响,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正忙着为一家公司写网页。我需要完成以下操作:如果输出为空,警告“Rookswitch已关闭”。如果输出为“Hookswitch Playlist”,警报“Rookswitch已打开”。 数据是从RESTAPI获取的 $(document).ready(function() { $.ajax({ type: "GET", url: "http://192.168.0.15:8080/Cnario/REST/GetDevice?deviceName=Rook

我正忙着为一家公司写网页。我需要完成以下操作:如果输出为空,
警告“Rookswitch已关闭”
。如果输出为
“Hookswitch Playlist”
警报“Rookswitch已打开”
。 数据是从RESTAPI获取的

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "http://192.168.0.15:8080/Cnario/REST/GetDevice?deviceName=Rook-Switch",
        dataType: "json",
        processdata: true,
        success: function(response) {
            alert("De Rookswitch staat al aan");
            if (response.GetDeviceResult.DevicePins.PinValue == 'Playlist-Roken')
                handleSuccess(response);
            else
                handleError(response);
        },
        error: function(message) {
            alert("Rookswitch is uit");
        }
    });
});

由于某些原因,该消息始终处于打开状态。即使它关闭了。如何修复此问题?

在成功功能中,您在所有情况下都会发出“已打开”的警报。无论响应是空白还是包含值

您已经在错误函数中设置了“它已关闭”的警报。仅当AJAX请求实际失败(即出现HTTP错误)时,才会调用此函数


我想你可能想做的是在成功函数中添加一个if/else块,检查响应对象中相应字段的值,看看它是否包含字符串“Hookswitch Playlist”。

如果你能够控制响应,我强烈建议使用类似

/* --------------------------------------- */
/*  Response will be generated according to which 
/*  prog lang you are using but as a result we should have sth like this
/* --------------------------------------- */

var response = {
    code: 200, // on
    message: 'Rookswitch is turned on'
}
/* OR */
var response = {
    code: 300, // off
    message: 'Rookswitch is turned off'
}

/* --------------------------------------- */
/* Response
/* --------------------------------------- */

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "http://192.168.0.15:8080/Cnario/REST/GetDevice?deviceName=Rook-Switch",
        dataType: "json",
        processdata: true,
        success: function(response) {
            alert(response.message);
            /* --------------------------------------- */
            /* doing sth according to server response
            /* --------------------------------------- */
            if(response.code == 200){
                /* On function goes here */
            }else if(response.code == 300){
                /* Off function goes here */
            }
        },
        error: function(message) {
            alert("Rookswitch is uit");
        }
    });
});

你说的“输出”是什么意思?你是指“回应”吗?还有什么意思?你能澄清你问题中的哪个英语字符串与你代码中的哪个外语字符串相关吗?请显示你的函数
handleSuccess
handleError
看起来你在依赖错误条件来确定某个东西是否“关闭”。为什么?在这种情况下,服务器是否应该以错误进行响应?Ja da是goed,但我认为您首先没有理解
success
error
回调的概念。
错误
回调仅在REST调用不成功时调用(因此导致了404之类的HTTP错误)。很遗憾,我无法从URL更改响应。确实,我想输入if/else来检查它是否包含该字符串。我如何才能做到最好?我不知道字符串在响应中的位置。我注意到在success函数中有另一个if语句来测试不同的值。您只需要执行相同的结构,但要更改它,以便它在响应中的相应字段中测试“Hookswitch Playlist”字符串。e、 g.如果该字符串可能出现在响应的“状态”字段中,那么您可以编写
if(response.status==“Hookswitch Playlist”){alert(“on”);}else{alert(“off”)}