问题描述:
最近在做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地址,错误如下:
应该是请求没有成功,控制台并没有打印一系列的111111111
之后,我更改了etc/host文件,将ip地址替换成了一个域名,就是programtest.com,错误信息和使用ip地址相同
然后,在ip地址和域名的前面分别加上https://,似乎这么做并不对,然后报错信息是这个:
之后有看网上使用url.parse解析的,然后也试了试这种方法,具体的改动就是:
//在https请求的参数options中
host: url.parse(serverUrl)
然后错误信息如下
使用一个ip地址或者域名,在url前面加上https://或者不加都是一样的错误:
相关分类