2015-04-23 8 views
1

Я работаю над простым скриптом, где я просто хочу увидеть запрос и ответ, отправленные на сервер, а затем полученные на клиенте через Ajax. Сервер всегда возвращает Status 500. Что я делаю не так? Ниже мой сценарий.Ajax возвращает пустой ответ

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(); 
} 


?> 
+0

'500' означает, что ошибки на сервере. Проверьте свою функцию, вызываемую AJAX в PHP – Tushar

+0

Кажется, что проблема связана с вашей функцией add_action(). – syms

ответ

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

Path является проблема обеспечения ваш путь к серверу 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> 
+0

нет пути, подобного 'ajax/ajax_exp.php' на этом пути. См. URL-адрес – user3202144

+0

. Вы создаете такой, как этот путь, и используете –

0

Если кто-либо другой, имеющий тот же вопрос, это то, что я сделал, и теперь он работает!

Javascript

Заменено xmlhttp.send(); с xmlhttp.send(null);

PHP

<?php 
$username = "user"; 
$password = "password"; 
print $username; 
?> 
Смежные вопросы