ajax传递的参数php就是接收不到,请高手指点但是换成 type:'get',就能接受function delgroup(deldata){
  var jsdata= jQuery.param({'dowhat':'del','deldata':'18','tmp':Math.random()});
  jsdata={'dowhat':'del','deldata':'18','tmp':Math.random()};
 // var jsdata= 'dowhat='+deldata;
$.ajax({     
    url:"./groupupdate.php",     
    type:'post',     
    contentType: "application/json", 
    data:jsdata,
  
    //data:"dowhat=del&deldata="+deldata,    
    cache:false, 
    async : false,
//dataType: "json",
    error:function(){     
       alert("erro");     
    },     
    success:function(data){
         
      alert(data);  
    }  
});  }
换成get 后
  var jsdata= jQuery.param({'dowhat':'del','deldata':'18','tmp':Math.random()});
  jsdata={'dowhat':'del','deldata':'18','tmp':Math.random()};
 // var jsdata= 'dowhat='+deldata;
$.ajax({     
    url:"./groupupdate.php",     
    type:'get',     
    contentType: "application/json", 
    data:jsdata,
  
    //data:"dowhat=del&deldata="+deldata,    
    cache:false, 
    async : false,
//dataType: "json",
    error:function(){     
       alert("erro");     
    },     
    success:function(data){
         
      alert(data);  
    }  
});  
就可以得到,网上查了一些资料说如下修改就可,但是试过了,还是不行function delgroup(deldata){  var jsdata= jQuery.param({'dowhat':'del','deldata':'18','tmp':Math.random()});
 // var jsdata= 'dowhat='+deldata;
$.ajax({     
    url:"./groupupdate.php",     
    type:'post',     
    //contentType: "application/json", 
    data:jsdata,
  
    //data:"dowhat=del&deldata="+deldata,    
    cache:false, 
    async : false,
dataType: "json",
    error:function(){     
       alert("erro");     
    },     
    success:function(data){
         
      alert(data);  
    }  
});  }

解决方案 »

  1.   

    POST /pgadmin/webapp/groupupdate.php HTTP/1.1 送出的流
    x-requested-with: XMLHttpRequest
    Accept-Language: ja
    Referer: http://localhost/pgadmin/webapp/groupsetup.php
    Accept: */*
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; BRI/2)
    Host: localhost
    Content-Length: 44
    Connection: Keep-Alive
    Cache-Control: no-cache
    Cookie: PHPSESSID=4nf25o68odgihbf75rkguaqoe0dowhat=del&deldata=19&tmp=0.9517028051806782
    =====================================================得到的
    HTTP/1.1 200 OK
    Date: Tue, 20 Nov 2012 08:36:40 GMT
    Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1
    X-Powered-By: PHP/5.3.1
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Content-Length: 0
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html
      

  2.   

    应该是你json格式的问题,你把单引号用转义字符替换。
      

  3.   

    GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。  POST把提交的数据则放置在是HTTP包的包体中。  2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB"??!  以上这句是我从其他文章转过来的,其实这样说是错误的,不准确的:  (1).首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。  注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。[见参考资料5]  (2).理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。  对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。  由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:     1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
         2).IIS 6.0默认上传文件的最大大小是4MB。
         3).IIS 6.0默认最大请求头是16KB。
      IIS 6.0之前没有这些限制。[见参考资料5]  所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。  3.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。在PHP中,可以用$_GET和$_POST分别获取GET和POST中的数据,而$_REQUEST则可以获取GET和POST两种请求中的数据。值得注意的是,JSP中使用request和PHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。  4.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。  总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!