【发布时间】:2015-09-29 05:38:55
【问题描述】:
我正在重定向到基于在登录表单提交之前单击的链接的页面。通过 ajax 提交的表单,我注意到只有在实时服务器中,没有收到通过 ajax 从 php 脚本传递的响应。 success: function(data) {//nothing works here}.因此页面没有被重定向。在php页面中,有脚本来登录用户。令人惊讶的是,刷新页面后,用户已登录。用户登录后,重定向工作完美。
我想知道为什么没有通过 ajax 从 php 传递数据以及为什么重定向不起作用?
我的 ajax..
$("#login").on("click",function()
{
// alert(this_link);
$("#login_form").submit(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "login2.php?id='"+this_link+"'", //Relative or absolute path to response.php file
data: data,
success: function(data) {
$(".the-return").html("<br />JSON: " + data );
// alert("Form submitted successfully.\nReturned json: " + data["json"]);
//alert(data);
//alert(data["json"]);
//console.log(data);
if(data=="'del_create'-1")
{
//window.location='create_post.php';
$(location).attr('href', 'https://sample.com/create_post.php');
}
else if(data=="'del_avail'-1")
{
//window.location='update_post.php';
$(location).attr('href', 'https://sample.com/update_post.php');
}
else
{
window.location='<?php echo $root;?>login/login.php';
}
}
});
php 脚本返回的数据
$id3=$id."-".$id2;
echo json_encode($id3);//returns 'del_avail'-1 or 'del_create'-1 if logged in and -0 if not logged in
【问题讨论】:
-
在成功线后写入console.log(data)并检查数据是否到来
-
window.location应该是window.location.href -
@Tushar 你明白了 r8
-
@AbhishekPachal,我做到了,它没有出现在实时服务器上
-
@Tushar,我试过了,window.location.replace 也无济于事..我认为现在的主要问题是 ajax 函数在成功时没有显示数据..这意味着它不成功。因为对于其他页面,我使用了重定向并且它有效