2010-05-30 41 views
1

我正在做一些自学,以了解如何将数据从JQuery Ajax传递到CakePHP中的特定URL:
我已经测试了三组代码第一个工作正常,但其他工作没有奏效,这让我感到非常困惑。
这里的一些专家能否告诉我们为什么第二组和第三组代码无法传递任何数据?
这是唯一的方法来传递Cakephp的参数来使用JQuery Ajax

套装1:

<input type=text name="data[User][name]" id="data[User][name]" size="36" maxlength="36"/> 
var usr = $("#data\\[User\\]\\[name\\]").val(); 
$.post(
"http://www.washington.byethost18.com/site1/toavail/"+usr, 
function(msg){alert(msg);} 
); 

盘2:

<input type=text name="data[User][name]" id="data[User][name]" size="36" maxlength="36"/> 
var usr = $("#data\\[User\\]\\[name\\]").val(); 
$.post(
"http://www.washington.byethost18.com/site1/toavail/", 
{queryString: ""+usr+""}, 
function(msg){alert(msg);} 
); 

套装3:

<input type=text name="data[User][name]" id="data[User][name]" size="36" maxlength="36"/> 
var usr = $("#data\\[User\\]\\[name\\]").val(); 
$.post(
"http://www.washington.byethost18.com/site1/toavail/", 
usr, 
function(msg){alert(msg);} 
); 

回答

1

因为你写的,只有第一个版本的工作,你的服务器等待网址类似于

http://www.washington.byethost18.com/site1/toavail/paramVal 

,而不是像

http://www.washington.byethost18.com/site1/toavail/ 

用 “的queryString = paramVal” 或 “paramVal” 为发布数据体。所有三个版本都以不同的方式发送值为usr的变量。

一个小小的评论:我建议使用encodeURIComponent函数来编码作为url的一部分发送的数据。