Ajax返回空白响应

时间:2015-04-23 06:41:29

标签: javascript php jquery ajax wordpress

我正在编写一个简单的脚本,我只想查看发送到服务器的请求和响应,然后通过Ajax在客户端收到。服务器始终返回Status 500。我究竟做错了什么? 以下是我的剧本。

使用Javascript:

<script>
function loginJs()
{

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","http://my-website.com/ajax_exp.php",true);

xmlhttp.onreadystatechange=function()
{  

 alert("State "+xmlhttp.readyState+" Status "+xmlhttp.status);
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
 {
    alert(xmlhttp.responseText);
 }
}
xmlhttp.send();
}
</script>

ajax_exp.php

<?php

header('Access-Control-Allow-Origin: http://my-website.com/ajax_exp.php');
add_action('wp_ajax_my_action',        'my_action');
add_action('wp_ajax_nopriv_my_action', 'my_action');

function my_action()
{
$username = 'username';
$password = 'password';

echo $username;
die();
}


?>

3 个答案:

答案 0 :(得分:1)

1)尝试删除

 header('Access-Control-Allow-Origin: http://my-website.com/ajax_exp.php');
 add_action('wp_ajax_my_action',        'my_action');
 add_action('wp_ajax_nopriv_my_action', 'my_action');

替换为

 my_action();

您可以轻松追踪错误;

2)检查控制台日志中是否有任何javascript错误。

答案 1 :(得分:1)

路径问题是提供服务器路径ajax/ajax_exp.php

<script>
function loginJs()
{

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","ajax/ajax_exp.php",true);

xmlhttp.onreadystatechange=function()
{  

 alert("State "+xmlhttp.readyState+" Status "+xmlhttp.status);
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
 {
    alert(xmlhttp.responseText);
 }
}
xmlhttp.send();
}
</script>

答案 2 :(得分:0)

如果其他人有同样的问题,这就是我所做的,现在它可以工作了!

<强>的Javascript

xmlhttp.send();

替换xmlhttp.send(null);

<强> PHP

<?php
$username = "user";
$password = "password";
print $username;
?>