Javascript AJAX未链接到PHP文件
我需要更改JavaScript函数中的会话值,所以我决定使用AJAX。然而,这个电话似乎不起作用。怎么了? 索引页设置默认会话值:Javascript AJAX未链接到PHP文件,javascript,php,ajax,Javascript,Php,Ajax,我需要更改JavaScript函数中的会话值,所以我决定使用AJAX。然而,这个电话似乎不起作用。怎么了? 索引页设置默认会话值: session_start(); if( is_null($_SESSION['lang']) ){ $_SESSION['lang'] = 'english'; } 索引页上的AJAX调用: var request = new XMLHttpRequest(); request.open('GET', 'setlang.php?entry=0', fal
session_start();
if( is_null($_SESSION['lang']) ){
$_SESSION['lang'] = 'english';
}
索引页上的AJAX调用:
var request = new XMLHttpRequest();
request.open('GET', 'setlang.php?entry=0', false);
request.send();
setlang.php文件:
$entry = $_GET['entry'];
if($entry == 0){
$_SESSION['lang'] = 'english';
Print_r ($_SESSION);
}else if($entry == 1){
$_SESSION['lang'] = 'japanese';
Print_r ($_SESSION);
}
没有打印任何内容。有人知道怎么回事吗?在setlang.php顶部添加以下内容:
session_start();
实际上,您不必检查响应(除非您省略了javascript的某些部分) 检查MDN的文档
var request = new XMLHttpRequest();
request.onload = function() {
alert(this.responseText);
}
request.onerror = function(e) {
alert('Error : ' + e.target.status);
}
request.open('GET', 'setlang.php?entry=0', false);
request.send();
还要确保调用
session_start()。您使用什么方法查看对Ajax请求的响应?目前没有。这有助于调试Ajax调用吗?为什么投票结果如此接近?@LuckyInJapan-如果您不做任何事情来确定响应是什么,您如何知道没有打印任何内容?如果您直接在浏览器中打开setlang.php
文件,会发生什么?感谢您的响应。我在ajax调用中添加了这个缺少的部分。当我启动javascript函数时,不会弹出警报。这意味着什么?打开开发者控制台,看看里面是否有打印的内容,在chrome中,你可以按F12打开它。哦!我想我明白我错在哪里了。如果我回显/打印该PHP文件中的任何内容,它将只显示在警报框中?您在PHP中打印的任何内容都将仅在onload
的this.responseText
中可用。非常感谢您的帮助!您填补了我在ajax知识方面的一些相当重要的空白,并真正帮助我提高了编码水平。