Моя страница html отправляет запрос ajax (POST) на PHP, PHP эхо-объект json.PHP возвращает пустую строку json?
Код был протестирован и отлично работал в моем представлении разработки.
Однако после их загрузки на сервер хостинга VPS возвращаемая строка json пуста (я использовал alert() в функции ответа для отображения responseText и обнаружил, что он пуст).
любое представление о проблеме?
Я новичок. Я не понял, как добавить комментарий. (Пожалуйста, дайте мне знать.)
Я изменил код PHP, чтобы вернуть строку, это сработало. поэтому проблема заключается в кодировке json.
новый товар test.php
(производства).
if(!isset($_POST['A'])||!isset($_POST['B']))
{
echo "Failed";
}
else
{
echo "OK";
}
HTML:
<html>
<head>
<title>Test Page</title>
<script type="text/javascript">
var NORMAL_STATE = 4;
function ajax_create_http()
{
var xmlHttp = 0;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
return 0;
}
}
}
return xmlHttp;
}
var http_req_inst = ajax_create_http();
function sendHttpRequest(params)
{
if(!http_req_inst) return;
http_req_inst.open('POST', 'test.php', true);
http_req_inst.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_req_inst.onreadystatechange = handleHttpResponse;
http_req_inst.send(params);
alert("Request sent");
}
function handleHttpResponse()
{
if(!http_req_inst) return;
if (http_req_inst.readyState == NORMAL_STATE)
{
alert(http_req_inst.responseText);
}
}
</script>
</head>
<body>
<div>
<input type="button" value="click" onclick="sendHttpRequest('A=a&B=b')"/>
</div>
</body>
</html>
PHP:
<?php
if(!isset($_POST['A'])||!isset($_POST['B']))
{
$rc = 1;
$arr = array ('rc'=>(integer)$rc,'msg'=>'Testing failed.');
echo json_encode($arr);
}
else
{
$rc = 0;
$arr = array ('rc'=>(integer)$rc,'msg'=>'Testing passed.');
echo json_encode($arr);
}
?>
Когда я тестировал, то responseText
пуст.
Попробуйте использовать функцию печати, но какой-то код поможет. – SimonDever
Я бы порекомендовал вам использовать Firebug для отладки вашей функции обратного вызова и проверки деталей запроса Ajax ... – CMS
Сделайте себе одолжение и пользователь FirePHP http://www.firephp.org/ для отладки AJAX – leepowers