【问题标题】:How to access APIs that don't allow cors?如何访问不允许 cors 的 API?
【发布时间】:2017-07-02 01:01:37
【问题描述】:

我想在我的 NodeJS 应用程序中使用 API(不支持 COR)。

实际上它并不是真正的 API。网站使用该链接获取数据。

我下载了一个浏览器扩展程序,可以让我访问 API。有什么方法可以在我的 NodeJS 应用程序中访问它,比如通过调整 Http 标头?

我使用 request 模块发送请求。

var request = require('request');

var options = {
    url: 'http://kalimatimarket.gov.np/priceinfo/dlypricebulletin',
    method: 'POST',
    data : "cdate=07/01/2017&pricetype=R"
    // do something to allow cors
};

request(options, (err, res, body)=> {
    console.log(body)
});

Without and with CORS enabled

【问题讨论】:

  • 如果它在服务器端则不需要。
  • 我们很困惑。您显示的代码是服务器端代码(在 node.js 中运行,而不是在浏览器中),但您显示的屏幕抓取是浏览器错误。从服务器或 node.js 发出请求时,没有跨源限制。跨源限制仅适用于在浏览器中发出的请求,因为跨源限制的整个概念是浏览器实现的,并且仅适用于在浏览器中运行的 Javascript。
  • 如果您在 node.js 中运行此代码时遇到错误,请向我们显示这些错误,以便我们帮助您处理这些错误。
  • @jfriend00 我没有收到错误消息。问题是我没有得到数据。当对 url 发出请求时,它会给出两个响应之一 i。用数据响应 ii。响应 PHP 错误和一些 HTML。从我的节点应用程序请求时,我得到第二个响应

标签: javascript node.js


【解决方案1】:
  • 在服务器站点上设置Allow-Control-Allow-Origin 指示客户端URL,或者
  • 使用jsonp

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 2021-09-07
    • 2022-06-25
    • 2021-07-30
    • 2018-05-11
    • 2017-12-28
    • 2017-12-28
    • 2021-01-09
    • 2019-02-09
    相关资源
    最近更新 更多