AJAX POST中的URL

时间:2011-01-27 13:53:09

标签: jquery

我想通过AJAX发布这些变量:

       <div class="vIn" id="star">
        <div id="inner">
         <span id="1" class="disabled"></span>
         <span id="2" class="disabled"></span>
         <span id="3" class="disabled"></span>
         <span id="4" class="disabled"></span>
         <span id="5" class="disabled"></span>
         <input type="hidden" id="<?php echo $_GET['cID']?>" />
        </div>
      </div>

使用此脚本:

$(document).ready(function(){
 $('#inner span').click(function(){
     $(this).prevAll().andSelf().addClass('enabled');  
     var a = $(this).attr("id");
     var cID = $("#inner input").attr("id");
     $.ajax({
           type: "POST",
           url: "ajax/rating.php",
           data: "value=+a+&cID=+cID+",
           success: function(msg){
             alert(data);
           }
         });
     });});

在点击事件中,没有提醒。我在$ .ajax中使用了正确的数据吗? 提前谢谢。

5 个答案:

答案 0 :(得分:8)

我强烈建议允许jQuery担心正确编码字符串:

var a = $(this).attr("id");
var cID = $("#inner input").attr("id");
$.ajax({
    type: "POST",
    url: "ajax/rating.php",
    data: {value: a, cID: cID},   // <== change is here
    success: function(msg){
        alert(msg);
    }
});

请注意,我将data作为对象传递给$.ajax,而不是字符串。 jQuery会为你正确编码。有关详细信息,请参阅the docs

如果你真的想要自己编码,你必须明确地做:

data: "value=" + encodeURIComponent(a) + "&cID=" + encodeURIComponent(cID)

另请注意,我正在警告msg,而不是data,因为这就是您称之为success的响应参数。

答案 1 :(得分:2)

这里有一个微妙的错误......

       success: function(msg){
         alert(data);
       }

您可以像这样修复它......

       success: function(data){
         alert(data);
       }

这里还有另一个错误......

data: "value=+a+&cID=+cID+",

我认为这应该是......

data: "value=" + a + "&cID=" + cID,

如果您仍未收到提醒,请大声喊叫!

答案 2 :(得分:0)

我不是Javascript专家,但不应该是data: "value="+a+"&cID="+cID

答案 3 :(得分:0)

data: "value=+a+&cID=+cID+"试图连接值而不用处理具有特殊含义的字符。例如,URL可能包含&个字符。

这就是它正在尝试做的事情,它实际上正在做的是将字符串文字设置为值。包含变量的尝试只是使它们成为字符串数据。

你应该:

data: { "value": a, "cID": cID }

答案 4 :(得分:0)

使用$ .ajax

时会出现一些问题
data: "value=+a+&cID=+cID+",

'+'是连接运算符,你在这里做的是使用你之前设置的变量构建数据字符串。因此,您需要使用字符串“value =”等来连接变量。

例如

data: "value="+a+"&cID="+cID,