鍍金池/ 問答/HTML/ node怎么請(qǐng)求非同源接口的數(shù)據(jù)?

node怎么請(qǐng)求非同源接口的數(shù)據(jù)?

在node中,想請(qǐng)求非同源接口的數(shù)據(jù),不知道怎么寫。

回答
編輯回答
不歸路

后端又沒有跨域的問題,同不同源有什么關(guān)系。
請(qǐng)求不到別人網(wǎng)站的數(shù)據(jù)往往是對(duì)方做了限制,比如host、referer、必要的參數(shù)等。host、referer的話node可以偽造,參數(shù)的話就看對(duì)方是怎么定規(guī)則的了。

2018年2月20日 13:39
編輯回答
掛念你

比較簡(jiǎn)單的跨域方式:

    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PATCH,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'x-requested-with,x-access-token,Content-Type');
2018年6月25日 22:22
編輯回答
爛人

首先,服務(wù)端沒有“同源”的問題,那是瀏覽器的限制。

其次,如何拿到另一臺(tái)服務(wù)器的數(shù)據(jù),取決于另一個(gè)服務(wù)器。兩個(gè)問題:

  1. 什么數(shù)據(jù)
  2. 另一臺(tái)服務(wù)器針對(duì)這些數(shù)據(jù)提供了哪些獲取數(shù)據(jù)的渠道

舉例:你想獲取的是另一臺(tái)服務(wù)器的mysql數(shù)據(jù)庫的數(shù)據(jù),那么有可能:

  1. 另一臺(tái)服務(wù)器給你開放了數(shù)據(jù)庫訪問權(quán)限,那你直接通過mysql客戶端連上去訪問就行。
  2. 另一臺(tái)服務(wù)器提供了訪問數(shù)據(jù)的API,比如HTTP接口,那么,請(qǐng)求HTTP接口就行
  3. 。。。

當(dāng)然,如果對(duì)方并沒有提供便捷的接口,但你又想拿到數(shù)據(jù),這就得考慮怎么爬取數(shù)據(jù)了。

PS:黑別人主機(jī)不算

2017年9月20日 19:00