突然发现jquery $.post 的参数竟然是get $.ajax 的post也是get,资深高手来!

//jquery...post
$.post("/cgi-bin/test.cgi", "aa=abc&bb=123", function( xml ) { }); });

//jquery...ajax post
$.ajax({ url:'/cgi-bin/test.cgi', type: 'post', dataType: 'xml', data: "aa=abc&bb=123",timeout: 60000 * 5, success: function(xml){} });

//cgi
getenv( "REQUEST_METHOD" ) 返回的是NULL
getenv( "QUERY_STRING") 却返回了post提交的参数,可环境变量QUERY_STRING存的是get参数啊,这是怎么回事???
最新回答
派大星┘

2024-08-02 02:47:24

应该是你传参的方式不对,"aa=abc&bb=123", 这种写法是url传参的方式,而$.post传参一般是json格式,如{“aa”:"abc","bb":"123"},你传参错误导致的吧
追问
哦,是我大意了,我是想弄清楚jquery如何传递类似于from的post参数,post和get两种传递方式我都想知道怎么实现。from是典型的post方式,可以在环境变量REQUEST_METHOD中识别为"POST" 但get传递确不可以
追答
post方式跟get的不同的一点是get传参会在url上显示传递的信息,post则会隐藏,
追问
我想知道用jquery如何传递超长字符串,随意长的那种
追答
就是json格式传递啊!如{"name":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
可以想写多长都行,多个参数都行的,用,隔开
心痛亦已

2024-08-02 02:38:13

jq的ajax提交是优先使用get的,因为基于http协议,get“操作”是幂对等的,浏览器会缓存你请求的数据,这样有利于在你做相同请求时,可以从缓存中得到数据。。。
追问
我想知道jquery怎么传递类似于from的post参数,这种参数可以在环境变量REQUEST_METHOD中识别为POST,且不等幂。