nodejs XHR替代http请求

时间:2014-09-30 01:14:33

标签: javascript php node.js xmlhttprequest cors

我需要为我正在构建的应用程序使用API​​,但API不允许使用CORS,如何在不使用XHR的情况下向网站发出GET和POST请求。我一直在看websockets和socket.io,但似乎我不能用它们发出http请求。

我的另一个解决方案是使用PHP或curl创建请求,但我觉得这不是一个好主意。

修改:更多信息

我想使用的API是https://bitcoinindex.es/api

我想抓住列出的交易价格并将其列出从最大到最小。

我使用AngularJS在这里制作第一个API请求是我的代码

  $http.get("https://bitcoinindex.es/api/v0.1/coinbase/usd/btc/last").success (JSON) 

2 个答案:

答案 0 :(得分:0)

如果你想使用nodejs从服务器端做一些请求,像Request这样的模块可以帮助你。

答案 1 :(得分:0)

作为一名PHP开发人员,从传统的LAMP堆栈转向angularJS和nodejs,我做了一些错误的假设。

所有Http请求都相同

现在我当然知道有GET,POST和PUT,但我认为获取请求是全面的,这不是真的。从使用诸如curl的库的服务器的应用程序的后端做出传统请求。这些http请求是在加载网页之前发出的。

AngularJS请求是从前端发出的,这意味着在加载网页后发出请求。这被称为 XHR 并且受到所有现代浏览器的支持,XHR的事情是它可以使用户数据易受攻击,因此只有在请求发送到同一服务器上的某个位置时它才有效。如果您向其他服务器发出请求,则需要通过服务器响应来启用 CORS ,并且可以通过access-control-allow-origin标头进行配置。

NodeJS是某种类型的前端嬉皮士代码

再次来自PHP我不明白nodeJS是一个实际服务器就像一个apache服务器,并且可以做出第一部分中提到的传统请求。

提出请求

使用nodejs request库非常简单地发出nodeJS请求。

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
  }
})