猿问

node中https使用时请求不成功,似乎url解析有问题

问题描述:


最近在做electron的小开发,在使用node中https模块发起一个https请求时总是报错,

我请求的地址是一个公司用于测试的地址,要求使用POST和异步请求,数据格式为json,人家服务接口请求格式就是json

最开始使用的是AJAX请求,似乎涉及到跨区请求的问题,请求并没有返回数据。

之后尝试了node的https模块,但是请求不成功。url各种尝试。。。都不行!

代码贴在下面,跪求各路大神指点,本人小白在此谢过!!!

我的代码:


//这个是用ajax请求的

function send_req(serverUrl, req_client_json, successHandler, errorHandler){

    $.ajax({  

        type : "POST",  

        url : serverUrl,

        crossDomain: true,

        data : req_client_json,  

        contentType : "application/json",  

        dataType : "json",  

        success : successHandler,

        error : errorHandler

    });

}


//然后这个是使用htts请求的

function send_req(serverUrl, req_client_json){

    var options = {

        host: serverUrl,

        port: '20682',

        path: '/',

        method: 'POST',

        json: true,

        headers: {

            'Content-Type': 'application/json',

            'Content-Length': req_client_json.length

        }

    }

    const post_req = https.request(options, function(res){

        console.log(1111111111111)

        res.setEncoding('utf8')

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

            console.log(chunk);

        })

        res.on('error', (err)=>{

            aletr("Error: " + err)

        })

    })


    post_req.write(req_client_json);

    post_req.end();

}

下面贴下我的报错信息:


在使用ajax请求的时候(直接执行了请求error的情况):


在使用https请求的时候,起初我把url设置成了一个ip地址,错误如下:

https://img3.mukewang.com/5ca980cd0001cef904340141.jpg


应该是请求没有成功,控制台并没有打印一系列的111111111


之后,我更改了etc/host文件,将ip地址替换成了一个域名,就是programtest.com,错误信息和使用ip地址相同


然后,在ip地址和域名的前面分别加上https://,似乎这么做并不对,然后报错信息是这个:

https://img1.mukewang.com/5ca980d000015f0102770088.jpg


之后有看网上使用url.parse解析的,然后也试了试这种方法,具体的改动就是:

 //在https请求的参数options中

 host: url.parse(serverUrl)

然后错误信息如下

使用一个ip地址或者域名,在url前面加上https://或者不加都是一样的错误:

https://img1.mukewang.com/5ca980d20001897704410142.jpg

莫回无
浏览 552回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答