日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何實現(xiàn)跨域請求原生json數(shù)據(jù)庫? (跨域請求原生json數(shù)據(jù)庫)

跨域請求是目前在運用前后端分離架構(gòu)的開發(fā)中經(jīng)常遇到需要解決的一個問題。在這種情況下,很多開發(fā)者需要調(diào)用另一臺服務器上的數(shù)據(jù),因此需要進行跨域請求。但是,跨域請求并不是一個簡單的問題,需要對跨域請求的技術有清晰的認識以及實現(xiàn)的技術手段。其中,本文將會介紹在前后端分離開發(fā)架構(gòu)下,如何使用原生json數(shù)據(jù)庫實現(xiàn)服務器之間的跨域請求。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供定州網(wǎng)站建設、定州做網(wǎng)站、定州網(wǎng)站設計、定州網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、定州企業(yè)網(wǎng)站模板建站服務,10余年定州做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

之一步:解決服務器配置跨域訪問

在實現(xiàn)跨域請求之前,首先需要解決的是跨域訪問為什么會出現(xiàn)問題??缬蛘埱蟮母髥栴}出現(xiàn)在客戶端發(fā)起的請求并不會直接到達目標服務器,而是通過中間層進行訪問。這種非直接訪問帶來的安全保障是可靠,但是也使得跨域請求變得困難。

因此,我們需要對目標服務器進行配置,允許不同域的客戶端發(fā)起請求。一般來說,這個過程分為兩個步驟:

之一步:設置目標服務器的跨域請求訪問權(quán)限,即CORS(Cross-Origin Resource Sharing)策略。

由于CORS是為了減少安全漏洞設計出來的,因此設置跨域請求訪問權(quán)限需要謹慎,以確保不會開放無意之間不該公開的訪問。通常情況下,CORS有兩種方式可以使用:

– 讓服務器在HTTP響應頭中返回 ‘Access-Control-Allow-Origin:*’,這樣就可以開放所有域的訪問權(quán)限。但是,這種方法會導致安全范圍變得更加開放,只適用于非重要的測試環(huán)境。

– 讓服務器返回 ‘Access-Control-Allow-Origin:特定的域名’,這種方法更為安全,在特定域名下運行的程序才能訪問目標服務器。這種方法應該被推薦使用,特別是在重要的生產(chǎn)環(huán)境中。

第二步:讓目標服務器允許跨域請求訪問

為了讓目標服務器允許跨域請求,我們需要再HTTP響應頭中加入如下字段:

– Access-Control-Allow-Credentials:true 表示允許服務器端發(fā)送Cookie。

– Access-Control-Allow-Headers: Content-Type,X-Requested-With 類似于一個白名單,限制下發(fā)請求時客戶端請求頭中會攜帶那些Header。

第二步:啟用Node.js服務端程序

由于目前前后端分離的開發(fā)架構(gòu)已經(jīng)成為主流,開發(fā)者所面對的主要程序是JavaScript語言和其相關生態(tài)圈。在Node.js生態(tài)圈中,我們將會使用Express框架來搭建一臺本地服務。這種方法的優(yōu)勢在于本地服務沒有跨域訪問的差異,客戶端調(diào)用我們提供的API,本地服務將數(shù)據(jù)直接返回,因此跨域請求的鏈接不再成為問題。

第三步:構(gòu)建json數(shù)據(jù)庫

在前面,我們已經(jīng)將目標服務器的CORS策略配置好了,現(xiàn)在我們需要的是一個數(shù)據(jù)庫來存儲客戶端數(shù)據(jù)。在這里,我們推薦使用ON Server這個工具,它可以幫助我們快速構(gòu)建一個 ON 數(shù)據(jù)庫,同時還具備查詢、排序、分頁等功能。ON Server 基于 Express 框架構(gòu)建而成,支持 REST api 結(jié)構(gòu),我們可以使用基于 HTTP 請求的方式來請求和更新數(shù)據(jù)。簡單來說,ON Server是一個為前端開發(fā)人員和設計師提供快速尋求數(shù)據(jù)的本地數(shù)據(jù)服務器解決方案。

第四步:開始跨域請求

接下來,我們就需要在客戶端中帶上目標服務器的地址,從而建立起跨域請求。常規(guī)的請求步驟如下:

1. 通過XMLHttpRequest對象創(chuàng)建跨域請求

2. 添加請求頭,以便檢查服務器允許CORS跨域請求

3. 使用send方法發(fā)送請求

4. 在請求成功后,使用ON.parse方法解析服務器響應的ON數(shù)據(jù)。

這種方式可以向目標服務器發(fā)起GET/POST請求等,也可以留給客戶端程序員自由發(fā)揮。

結(jié)束語

在前后分離的開發(fā)框架下,跨域請求已經(jīng)成為一種不可避免的狀態(tài)。然而,將這種功能正確的應用到項目之中仍然是一個需要擁有一定技巧的問題。希望通過本文的介紹,能夠?qū)η岸思夹g人員在處理跨域請求時提供更多的幫助。

相關問題拓展閱讀:

  • 解析ON數(shù)據(jù)格式時遇到AJAX跨域問題,怎么解決
  • 如何實現(xiàn)跨域?jsonp實現(xiàn)原理
  • 使用jquery的ajax的jsonp類型跨域請求數(shù)據(jù)始終獲取不到返回數(shù)據(jù)呢

解析ON數(shù)據(jù)格式時遇到AJAX跨域問題,怎么解決

使用 jsonp這種方法,

大致講一下吧,叢棚遲html中,有一些標簽,本身就是可以跨域的,比如script標簽

所以,就利用它,jsonp就是新建一個script標簽,src為你想要跨域獲取數(shù)據(jù)的那個文件的地址,然后用get的方式傳參,同時可以傳一個回調(diào)函數(shù)過去

等處理完了,獲取到數(shù)據(jù)了,就把這個script標簽再刪和皮掉,就OK

具體的,再百度看一下吧,這兒篇幅也不好展開,很常用的滲李

如何實現(xiàn)跨域?jsonp實現(xiàn)原理

ONP的最基本的原理是:動態(tài)添加一個標簽,而script標簽的src屬性是沒有跨域的限制的。這樣說來,這種跨域方式其實與ajax XmlHttpRequest協(xié)議無關了。

這樣其實”jQuery AJAX跨域問題”就成了個偽命題,jquery $.ajax方法名有誤導人之嫌。

如果設為dataType: ‘jsonp’,這個$.ajax方法就和ajax XmlHttpRequest沒什么關系了,枝攔取而代之的則是ONP協(xié)議。ONP是一個非官方的協(xié)議,它允許在服務器端集成Script tags返回至客戶端,通過javascript callback的形式實現(xiàn)跨域訪問。

ONP即ON with Padding。由于同源策略的限制,XmlHttpRequest只允許請求當前源(域名、協(xié)議、端口)的資源。如果要進行跨域請求, 我們可以通陪乎過使用html的script標記來進行跨域請求,并在響應中返回要執(zhí)行的script代碼,其中可以直接使用ON傳遞javascript對象。 這種跨域的通訊方式稱為ONP。

jsonCallback 函數(shù)jsonp(….):是瀏覽器客戶端注冊的,獲取跨域服務器上的json數(shù)據(jù)后,回調(diào)的函數(shù)

Jsonp的執(zhí)行過程如下:

首先在客戶端注冊一個callback (如:’jsoncallback’), 然后把callback的名字(如:jsonp)傳給服務器。注意:服務端得到callback的數(shù)值后,要用jsonp(……)把將要輸出的json內(nèi)容包括起來,此時,服務器生成 json 數(shù)據(jù)才能被客戶端正確接收。

然后以 javascript 語法的方式,生成一個function, function 名字就是傳遞上來的參數(shù) ‘jsoncallback’的值 jsonp.

最后將 json 數(shù)據(jù)直接以入?yún)⒌姆绞?,放置?function 中,這樣就生成了一段 js 語法的文檔,返回給客戶端。

客戶端瀏覽器,解析script標簽,并執(zhí)行返回的 javascript 文檔,此時javascript文檔數(shù)據(jù),作為參數(shù), 傳入到了客戶端預先定義好的 callback 函數(shù)(如上例中jquery $.ajax()方法封裝的的success: function (json))里。

可以說jsonp的方式原理上和是一致的(qq空間就是大量采用蘆搭悉這種方式來實現(xiàn)跨域數(shù)據(jù)交換的)。ONP是一種腳本注入(Script Injection)行為,所以有一定的安全隱患。

那jquery為什么不支持post方式跨域呢?

雖然采用post+動態(tài)生成iframe是可以達到post跨域的目的(有位js牛人就是這樣把jquery1.2.5 打patch的),但這樣做是一個比較極端的方式,不建議采用。

也可以說get方式的跨域是合法的,post方式從安全角度上,被認為是不合法的,萬不得已還是不要劍走偏鋒。

client端跨域訪問的需求看來也引起w3c的注意了,看資料說html5 WebSocket標準支持跨域的數(shù)據(jù)交換,應該也是一個將來可選的跨域數(shù)據(jù)交換的解決方案。

使用jquery的ajax的jsonp類型跨域請求數(shù)據(jù)始終獲取不到返回數(shù)據(jù)呢

使用jquery的ajax的jsonp類型跨域請求數(shù)據(jù)、始終獲取不到返回數(shù)據(jù)是設置錯誤造成的,解決方法為:

1、創(chuàng)建基本的文件結(jié)構(gòu)json_ajax.html和json_ajax.php,下載jquery.js。

2、如圖分別編寫json_ajax.html和json_ajax.php文件的編碼。

3、分別在w(l)amp環(huán)境下運行json_ajax.html和json_ajax.php。

4、經(jīng)過源碼和運行結(jié)果的分析,知道了在json_ajax.html中設置了按拆穗握鈕的點擊事件,點擊按鈕。

注意事項:

jQuery的核心特性可以旅慶總結(jié)為:具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可族余對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE6.0+、FF1.5+、Safari2.0+、Opera9.0+等。

關于跨域請求原生json數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎服務商,價格厚道。提供成都服務器托管租用、綿陽服務器租用托管、重慶服務器托管租用、貴陽服務器機房服務器托管租用。


網(wǎng)頁題目:如何實現(xiàn)跨域請求原生json數(shù)據(jù)庫? (跨域請求原生json數(shù)據(jù)庫)
本文鏈接:http://www.dlmjj.cn/article/djsgiej.html