2013-06-26 3 views
0

Я схожу с ума, я не знаю, почему, но мой очень простой пост JQuery работает неправильно. У меня есть index.php и temp.php, как показано ниже. Я все еще получаю сообщение «NOT RETURNED OK», не знаю почему, потому что данные возвращают «ok», если я предупреждаю об этом перед условием if.Сообщение JQuery не работает правильно

index.php:

<? session_start(); ?> 
<!DOCTYPE HTML> 
<meta charset="windows-1250"> 

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery- ui.css" rel="stylesheet" type="text/css"/> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">    </script> 
<link rel="stylesheet" type="text/css" href="style.css" /> 

<script> 

function do_post(item) 
{  
    $.post("temp.php", {par:item}, function(data,status){ 
    //alert("Data: " + data + "\nStatus: " + status); 
    if(data=="ok") 
    { 
    alert('RETURNED OK'); 
    //location.reload(); 
    } 
    else 
    { 
    alert('NOT RETURNED OK'); 
    } 
}); 
} 

</script> 

<body> 
<a href="#" onclick="do_post('whatever');">click</a> 
</body> 
</html> 

temp.php: 
<? echo "ok"; ?> 

Заранее спасибо за любые идеи.

+1

'data' может содержать невидимые символы. –

+0

Ну, он сказал, что если он запустит предупреждение (данные), он вернется «хорошо». – Rell

+3

@EvanMulawski вполне может быть прав. Попробуйте это: перед оператором if (data) добавьте 'console.log (typeof data, data.length)' и сообщите нам, что возвращает консоль. –

ответ

0

Я предлагаю либо с помощью JSON в ответе с соответствующим заголовком ответа типа содержимого или явно указать JQuery .post, что вы ожидаете назад:

$.post("temp.php", {par:item}, function(){}, 'text'); 

Если вы просто echo'ing в вашем PHP скрипт , вы не указываете тип содержимого в своем заголовке, который не может быть правильно проанализирован jQuery, поскольку он должен угадать, с чем он работает. Также найдите разрывы строк.

+0

Спасибо, ребята, вы правы, есть возврат каретки и новые строковые символы. Это должно было произойти со мной :-(. Я не знаю, откуда она (возможно, другая IDE и webftp). Но я использовал функцию триммера, и теперь она работает :) спасибо снова –

0

Я запустил код на своем локальном хосте, и он работает нормально. Тем не менее, теги открытия php не были интерпретированы моим сервером, и мне пришлось добавить слово php к ним.

Смежные вопросы