我很抱歉在这里添加这个广泛的问题,但我似乎无法自己谷歌,我试过,我真的无法理解这背后的想法,所以这里。 所以我有一个网站使用AJAX登录用户而没有完整页面重新加载。我有点理解AJAX是如何工作的,我很抱歉我的无知,但就我而言:
$.ajax({
url: './',
type: 'POST',
data: {auth: auth, login: login, pass: pass}
success: function(res){
// Code that checks if **res** is a specific string
},
error: function(){
alert("Error!");
}
据我所知,这会将POST请求发送到包含3个参数的同一页面。我不明白的是它作为一个特定的回应是什么?就我而言,res
中的$_SESSION
元素包含字符串消息
我的问题是:我如何知道响应中的内容?如果我只是echo
我的函数中的某些内容,是否会得到响应?是否有关于可以传递给成功函数参数的文档?
我对此感到很困惑。
答案 0 :(得分:2)
" res" ...或通常"数据"在大多数示例中,只是您发布到的页面的回复数据..
所以在PHP的情况下说...你肯定只会回复任何东西。
通常人们使用JSON,所以使用php你会创建一个包含你想要发回的所有数据的数组,然后简单地做
发布帖子的页面
<script>
// JUST USING SUCCESS HERE ATM (Tthis does not show the full ajax command)
// Refer to original question for full javascript
success: function(res){
var myData = $.parseJSON(res);
if(myData.hasOwnProperty('name')){
alert(myData.name);
}
if(myData.hasOwnProperty('object1') && myData.object1.hasOwnProperty('items')){
alert(myData.object1.items.one);
}
},
</script>
您的PHP页面响应
<?php
$myResponse = array();
$myResponse['name'] = "John Doe";
$myResponse['number'] = 123456789;
$myResponse['other'] = "and so on";
$myResponse['object1'] = array();
$myResponse['object2'] = array();
$myResponse['object1']['name'] = "john";
$myResponse['object1']['items'] = array();
$myResponse['object1']['items']['one'] = "one one 1";
$myResponse['object1']['items']['two'] = "two two 2";
$myResponse['object2']['name'] = "jane";
echo json_encode($myResponse);
?>
使用&#34;多维&#34;在php中的数组中,您可以将数组的每个部分视为单独的部分/对象
这可能会有所帮助:http://www.thecave.info/pass-a-php-array-to-javascript-as-json-using-ajax-and-json_encode/
答案 1 :(得分:1)
好吧,我认为你“回声”的是你将在“res”中检索的内容, 尝试在控制台中看到它:
console.log(res);
或带警报
alert(res);
答案 2 :(得分:1)
尝试console.log(res);
并检查浏览器控制台
ctrl
+ shift
+ k
(firefox)
f12
(Chrome&amp; IE)
答案 3 :(得分:1)
对于你的任务,我建议使用getJSON,而不是.ajax。它只是同一功能的简写,但非常方便。
$.getJSON('/ajax-get-session/login/value/pass/value', function(json){
if (!json.error) { //check if there wasn't error on the server side
console.log(json.session);
} else {
console.log(json.error);
}
});
在服务器端。
$response = array();
try {
$response['session'] = $_SESSION;
}
catch (e) {
$response['error'] = e;
}
echo json_encode($response)