node跨域请求方法小结
本文介绍了node跨域请求,主要介绍了两种方法,一种是jsonp,另一种res.wirteHead,具体如下:
第一种:jsonp
参看用nodejs实现json和jsonp服务
第二种:res.wirteHead
node部分
varhttp=require('http') varurl=require('url') varquerystring=require('querystring') varport=9000 varjsonData={'name':'xiaohong','job':'daboss'} http.createServer(function(req,res){ //varpathStr=url.parse(req.url) res.writeHead(200,{ 'Content-Type':'application/json;charset=utf-8', 'Access-Control-Allow-Credentials':true, 'Access-Control-Allow-Origin':'*' }) vartype=req.method; if(type=='GET'){ res.end(JSON.stringify(jsonData)) }elseif(type=='POST'){ varstr=''; req.on('data',function(chunk){ str+=chunk; }) req.on('end',function(){ vardata=querystring.parse(str) console.log(data) if(data.name==""||data.job==""){ res.end(JSON.stringify({'success':true,msg:'填写有误'})) }else{ res.end(JSON.stringify({'success':false,msg:'添加成功'})) } }) } }).listen(port,function(){ console.log('serverisruningatport'+port) })
重点部分是添加响应头信息
res.writeHead(200,{ 'Content-Type':'application/json;charset=utf-8', 'Access-Control-Allow-Credentials':true, 'Access-Control-Allow-Origin':'*'//可以是*,也可以是跨域的地址 })
在ajax里不需要做任何特殊处理
dataType仍旧是json
html部分
Document clickme 添加