在做node交互的小demo,用ajax做数据传输,使用的是type:'post',但是node代码调试中显示req.method:get。不知道是为什么?
html代码
<div class="form">
<p class="form-p" style="color: #8d8d8d; text-align: center;">站内搜索</p>
<input type="text" name="sousuo" id="search">
<ul id="result">
</ul>
</div>
ajax代码
$.ajax({
url:"http://localhost:3000/",
type:'post',
dataType:'jsonp',
data: {'data':search.value},
jsonp : "callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"handler",
success:handler,
});
node代码
var http = require('http');
var mongo = require('mongo');
http.createServer(function (req, res){
var data = "";
console.log('Request received: ');
data = req.body.data;
}).listen(3000,'127.0.0.1');
调试发现:
jsonp只能get。
因为其原理是用script标签获取,虽然jq把json放在ajax方法里面本来就是有点歧义,和xhr都没有什么关系了。