为什么不在jQuery的ajax POST中获取POST参数

时间:2011-01-25 04:13:27

标签: javascript jquery ajax post

代码如下:

    $.ajax({
     type: "POST",
     url: "http://localhost:3000/rcm/global_config/update",    
     data: {k: 'sdfa', v: 'dsfas'},
     success: function(data, textStatus, XMLHttpRequest){
       alert("数据更新成功");
     },
     error: function(xhr,textStatus, errorThrown){
       alert("数据更新失败,请刷新回滚");
     }
    });

在服务器中我无法获取post参数,然后我篡改ajax发送的请求,它根本不发送数据参数。我不知道我错在哪里。

提前谢谢。

4 个答案:

答案 0 :(得分:1)

此问题已在SO jquery-ajax-post-sending-options-as-request-method-in-firefox

中提出并已解决

这是因为FF的原始政策相同。它只允许您对自己的域执行XMLHTTPRequests。 也许您的脚本从域“localhost”和您的ajax请求加载到“localhost:3000”

答案 1 :(得分:0)

尝试

$.ajax({
 type: "POST",
 url: "http://localhost:3000/rcm/global_config/update",    
 data: "{'k': 'sdfa', 'v': 'dsfas'}",       // Change are here in this line
 success: function(data, textStatus, XMLHttpRequest){
   alert("数据更新成功");
 },
 error: function(xhr,textStatus, errorThrown){
   alert("数据更新失败,请刷新回滚");
 }
});

答案 2 :(得分:0)

   $.ajax({
     type: "POST",
     url: "http://localhost:3000/rcm/global_config/update",    
     data: $.param({k: 'sdfa', v: 'dsfas'}),
     success: function(data, textStatus, XMLHttpRequest){
       alert("数据更新成功");
     },
     error: function(xhr,textStatus, errorThrown){
       alert("数据更新失败,请刷新回滚");
     }
    });

在$ .param中包装数据对象应该这样做。它会将该对象转换为字符串“k = sdfa& v = dsfas”

答案 3 :(得分:0)

$.ajax({
        type:"POST",
        url:"student/info/ajax.php",  
        data:({type:'test', r:which}),
        success:function(data){
            if((data.result)=='true')
                $('#result_popup').html(data.output);
            }, 
        dataType:"json"});
        return false;