为了账号安全,请及时绑定邮箱和手机立即绑定

大牛给我看看,为什么cmd跑成功了,网页上却没有

var http = require('http');

var querystring = require('querystring');


var postData = querystring.stringify({

    'content': 'test',

    'cid': 348

});


var options = {

    hostname:'www.imooc.com',

    port:80,

    path:'/course/docomment',

    method:'POST',

    headers:{

        'Accept':'application/json, text/javascript, */*; q=0.01',

        'Accept-Encoding':'gzip, deflate',

        'Accept-Language':'zh-CN,zh;q=0.8',

        'Connection':'keep-alive',

        'Content-Length':postData.length,

        'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',

        'Cookie':'imooc_uuid=1207be4c-10e3-4cae-9650-4924ee9f0875; imooc_isnew_ct=1473588694; loginstate=1; apsid=A2ZGQwMDE2ODViNmEwNDU0ZTI1NzQ1N2MzMjE2M2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjEwMDEyNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyODUyNzM1OTJAcXEuY29tAAAAAAAAAAAAAAAAAAAAADhjNjZjODAzMjFiNGI4Yzk5MzU2NzMyM2JkYzVkNzgxy9JDWMvSQ1g%3DOT; last_login_username=285273592%40qq.com; PHPSESSID=qhgl6jp0iekc15qb005hscdl62; IMCDNS=0; Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1478313653,1480839816,1480898786; Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1480898792; imooc_isnew=2; cvde=5844b8ddac887-3',

        'Host':'www.imooc.com',

        'Origin':'http://www.imooc.com',

        'Referer':'http://www.imooc.com/video/8837',

        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',

        'X-Requested-With':'XMLHttpRequest'

    }

};



var req = http.request(options, function(res) {

    console.log(res.statusCode);

    console.log('headers :' + JSON.stringify(res.headers));


    res.on('data', function(chunk) {

        console.log(Buffer.isBuffer(chunk));

        console.log(typeof chunk);

    });

    res.on('end', function() {

        console.log('finish');

    });


    res.on('error', function(e) {

        console.log(e.message);

    });



});


req.write(postData);


req.end();


正在回答

4 回答

var postData = querystring.stringify({

    'content': 'test',

    'cid': 348

});

content,内容太短,慕课网评论限制了至少5个字符

0 回复 有任何疑惑可以回复我~

我理解你的意思了,我自己成功测试了一遍。我在评论后看了一下 chrome的network的 docomment 。Form Data 是这里拿到是 mid这个对象名。

var postData = querystring.stringify({

    'content': 'Scott 老师讲哒不错~',

    'mid': 8837

});


0 回复 有任何疑惑可以回复我~
#1

hey自然

再就是更新一下你的 Cookie。你的代码是正确的。我复制你的代码,然后换上我的cookie 换了一下 postData 的内容就成功提交了。
2016-12-06 回复 有任何疑惑可以回复我~

res.on('end', function() {

        console.log('finish');

    });


    res.on('error', function(e) {

        console.log(e.message);

    });

把res改成req,并且放在req函数的外面,这是单独的一个部分,注意使用的on方法,是启用的意思而不应该在函数内部调用。


var req = http.request(options, function (res) {
   console.log("Status: " + res.statusCode);
   console.log("headers: " + JSON.stringify(res.headers));

   res.on("data", function (chunk) {
       console.log(Buffer.isBuffer(chunk));
       console.log(typeof chunk);
   })
});

req.on("end", function () {
   console.log("success");
});

req.on("error", function (e) {
   console.log("error" + e.message);
});

这样才是正确的

0 回复 有任何疑惑可以回复我~
#1

hey自然

Absolutely wrong.
2016-12-06 回复 有任何疑惑可以回复我~

这个问题稍微有点奇葩。你成功发送了一个请求。然后获取了相应地址的响应数据。我猜你的意思是想在本地localhost 获取到数据。那你就起一个server,在 server 回调里调用相应数据。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(一)
  • 参与学习       219315    人
  • 解答问题       982    个

本视频教程带你揭开Node.js的面纱,带你走进一个全新世界

进入课程

大牛给我看看,为什么cmd跑成功了,网页上却没有

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号