在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ js怎么讀取一個(gè)線上的.json文件內(nèi)容?

js怎么讀取一個(gè)線上的.json文件內(nèi)容?

一個(gè)線上的.json文件鏈接,能否用js讀取到內(nèi)容?
例如http://119.23.29.40/test.json 類似這樣的鏈接,可以直接用js讀取出內(nèi)容嗎?
fileReader好像只能讀取blob對(duì)象或者file對(duì)象的內(nèi)容,那這種鏈接該怎么讀取呢

----------更新-----------
用jquery的$.ajax()可以拿到數(shù)據(jù),不過需要nginx上配置一些可允許跨域的參數(shù)(因?yàn)榇嬖诳缬虻膯栴})

回答
編輯回答
怣人

同源的這樣就能讀

        $.get("http://119.23.29.40/test.json",{},function(res){
            console.info(res);
        });
2017年4月17日 17:03
編輯回答
蔚藍(lán)色

同源直接ajax就能讀

2017年1月13日 00:28
編輯回答
大濕胸

解決方案如下:

1 同源可直接讀取

如果http://119.23.29.40/test.json 和js文件處于相同域,可直接讀取

2 不同源

(1) 是否能控制http://119.23.29.40/test.json 的返回頭部? 瀏覽器本身有對(duì)跨域做一些限制,如果你需要跨域調(diào)用,添加如下http頭部:

Access-Control-Allow-Origin: http://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER
  1. Origin。HTTP請(qǐng)求頭,任何涉及CORS的請(qǐng)求都必需攜帶。
  2. Access-Control-Request-Method。HTTP請(qǐng)求頭,在帶預(yù)檢(Preflighted)的跨域請(qǐng)求中用來表示真實(shí)請(qǐng)求的方法。
  3. Access-Control-Request-Headers。HTTP請(qǐng)求頭,在帶預(yù)檢(Preflighted)的跨域請(qǐng)求中用來表示真實(shí)請(qǐng)求的自定義Header列表。
  4. Access-Control-Allow-Origin。HTTP響應(yīng)頭,指定服務(wù)器端允許進(jìn)行跨域資源訪問的來源域??梢杂猛ㄅ浞?表示允許任何域的JavaScript訪問資源,但是在響應(yīng)一個(gè)攜帶身份信息(Credential)的HTTP請(qǐng)求時(shí),Access-Control-Allow-Origin必需指定具體的域,不能用通配符。
  5. Access-Control-Allow-Methods。HTTP響應(yīng)頭,指定服務(wù)器允許進(jìn)行跨域資源訪問的請(qǐng)求方法列表,一般用在響應(yīng)預(yù)檢請(qǐng)求上。
  6. Access-Control-Allow-Headers。HTTP響應(yīng)頭,指定服務(wù)器允許進(jìn)行跨域資源訪問的請(qǐng)求頭列表,一般用在響應(yīng)預(yù)檢請(qǐng)求上。
  7. Access-Control-Max-Age。HTTP響應(yīng)頭,用在響應(yīng)預(yù)檢請(qǐng)求上,表示本次預(yù)檢響應(yīng)的有效時(shí)間。在此時(shí)間內(nèi),瀏覽器都可以根據(jù)此次協(xié)商結(jié)果決定是否有必要直接發(fā)送真實(shí)請(qǐng)求,而無需再次發(fā)送預(yù)檢請(qǐng)求。
  8. Access-Control-Allow-Credentials。HTTP響應(yīng)頭,凡是瀏覽器請(qǐng)求中攜帶了身份信息,而響應(yīng)頭中沒有返回Access-Control-Allow-Credentials: true的,瀏覽器都會(huì)忽略此次響應(yīng)。

(2)不能控制,則需要自己添加代理服務(wù)器作為中轉(zhuǎn)(題主所說的nginx也可以作為代理中轉(zhuǎn)),添加跨域頭部.

有作者已經(jīng)做好的:https://www.npmjs.com/package...

總結(jié)

遇到跨域問題,涉及瀏覽器的同源政策限制,同源直接讀取,跨域需要添加跨域頭部. 不能控制,則可以添加中轉(zhuǎn)服務(wù)器處理.

2017年9月21日 07:59