2010-05-30 4 views
0

Я изучаю, как использовать JQuery для проверки доступности данных.JQuery Ajax вернул пустые данные

Я написал функцию в контроллер для проверки ввода данных, и URL, как это: http://www.mywebsite.com/controllers/action/avariable

Но возвращаемые данные были пустыми.

<script language="javascript"> 
    $(document).ready(function(){ 
     $(document).change(function(){ 
      var usr = $("#data\\[User\\]\\[name\\]").val(); 
      $.post{"http://www.mywebsite.com/controllers/action/", 
       usr, 
       function(msg){alert(msg);} 
      } 
     }); 
    }); 
</script> 

<div id="username"> 
    <input type=text name="data[User][name]" id="data[User][name]"> 
</div>    

Вот код действий:

function action($data=null){ 
    $this->autoRender = false; 
    $result2=$this->__avail($data);   
    if($result2==1) 
     {return "OK";} 
    else 
     {return "NOT";}   
} 
+0

Имеются ли правильные данные на вашем сервере? В коде сервера у вас есть один раз «action ($ data = null)», но '$ this -> __ avail ($ udata)' –

+0

Получаете ли вы ответ, когда вы делаете регулярный пост http? –

+1

Вы предупреждали (usr); чтобы убедиться, что у вас нет мусора? Кроме того, является ли URL, который вы отправляете, в том же домене, что и текущая страница? В противном случае ваш запрос будет отклонен из-за бесполезной политики одинакового происхождения (http://en.wikipedia.org/wiki/Same_origin_policy). –

ответ

2

Вы действительно должны получить известны с FireBug

Ваш JavaScript выглядит экстра неправильно :)

Прежде всего, инлайн JavaScripts следует отформатировать следующим образом:

<script type="text/javascript"> 

Than check out jQuery.post() docs и общий синтаксис javascript ...