使用$ .ajax()。responseText写入JS中的var

时间:2016-12-08 13:38:59

标签: javascript jquery ajax variables

即使有很多与我的问题有关的问题,我也找不到合适的答案。

在外部JS中,我需要一个会话变量(view_mode)的值。它有两个可能的值("复杂"&"简单")。我想检查设置了哪个值,并根据结果做更多​​的事情。

使用以下代码,JS会提醒正确的值(假设"复杂")但是有一些空格(例如"复杂")。说到if(...),它不能使用'视图'即使我写了if(view ==" complex")'。就像变量'视图'不存在或具有其他价值,它总是跳入“其他”#。

var view = $.ajax({
                    type: 'GET',
                    async: false, 
                    url: 'get_view_mode.php',
                }).responseText;
alert(view);

if(view == "complex"){
  //do something
}else{
  //do something else
}

显然"复杂"在变量中写入,否则它将无法提醒正确的文本。但为什么不可能以任何其他方式进一步使用它? (是的,我知道ajax被认为是用于异步使用;))

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您应该检查您的PHP文件,以确保它没有输出您不期望的任何内容(例如空格)

但在这种情况下,您可以使用if( view.match(/complex/))

但是,一般情况下,我会在<head>

中提出类似建议
<script>
    window.SESSION = <?php
        echo json_encode(array(
            "view_mode" => $_SESSION['view_mode'],
            // add more values here?
        ));
    ?>
</script>

这样,您可以使用window.SESSION.view_mode直接在JS中访问该值,而无需对服务器进行额外的往返。