如何像我在站点一样发出POST请求

时间:2020-10-21 14:25:04

标签: node.js ajax post axios cors

我可以向URL发出POST请求,就像发出请求的人是其原始站点一样吗

让我解释一下情况。

我正在用政府的Web服务制作API,该服务接收一些数据,并返回许多协议,如果要打印pdf文件的字段,则我将其手动插入。

在对该网站进行了一些搜索之后,我发现该网站向URL发送了POST请求,然后使用返回的协议数目wich组成要插入<iframe>的url。

尽管,如果我尝试在服务器中发出POST请求,似乎没有t receive the data I发送,但是当我进入原始站点的控制台时,可以通过$ .Ajax进行POST。并返回了我的电话号码。

如果我是通过浏览器中的控制台但在另一页中通过控制台发出请求的,则它表示由于CORS策略的原因,它无法被完成。

这是网站本身中的POST请求:

$.ajax({
    url: '../lote/prepararEmissao',
    method: 'POST',
    dataType: 'json',
    data: [
        { name: "guias[1]", value: "1" },
        { name: "guias[2]", value: "2" },
        { name: 'protocolo', value: "2000849149" }
    ],
    cache: false,
    success: function (retorno) {
         // ...
    },
    error: function (err) {
         // ...
    }
})

结果:

{ success: true, numeroProtocolo: "2000849149" }

这是我要制作的,并得到错误的信息:

$.ajax({
    url: 'http://www.testegnre.pe.gov.br/gnre/v/lote/prepararEmissao',
    method: 'POST',
    dataType: 'json',
    data: [
        { name: "guias[1]", value: "1" },
        { name: "guias[2]", value: "2" },
        { name: 'protocolo', value: "2000849149" }
    ],
    cache: false,
    success: function (retorno) {
         // ...
    },
    error: function (err) {
         // ...
    }
})

返回:

data: { success: false, mensagem: 'Protolo de recebimento do lote não informado.' } 

我怀疑页面在标题中发送了一些附加信息,类似这样的东西。

问题是,我可以绕过CORS策略还是模拟我在页面中进行请求?

URL:http://www.testegnre.pe.gov.br/gnre/v/lote/consultar(该页面专门用于测试)

0 个答案:

没有答案