自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于JavaScript的REST客戶(hù)端框架

開(kāi)發(fā) 前端
本文介紹了一個(gè)基于JavaScript的REST客戶(hù)端框架。這是一個(gè)輕量級(jí)框架,JavaScript客戶(hù)端主要使用了XMLHttpRequest對(duì)象來(lái)實(shí)現(xiàn)通過(guò)HTTP對(duì)服務(wù)器操作GET、PUT、POST和DELETE以檢索和修改資源。

現(xiàn)在REST是一個(gè)比較熱門(mén)的概念,REST已經(jīng)成為一個(gè)在Web上越來(lái)越常用的應(yīng)用,基于REST的Web服務(wù)越來(lái)越多,包括Twitter在內(nèi)的微博客都是用REST做為對(duì)外的API,先前我曾經(jīng)介紹過(guò)“基于REST架構(gòu)的Web Service設(shè)計(jì)”,并給出了一些服務(wù)器端和客戶(hù)端代碼,隨著JavaScript的廣泛應(yīng)用,我這里就給出一個(gè)輕量級(jí)的基于JavaScript的REST客戶(hù)端框架。

這個(gè)JavaScript客戶(hù)端主要使用了XMLHttpRequest對(duì)象來(lái)實(shí)現(xiàn)通過(guò)HTTP對(duì)服務(wù)器操作GET、PUT、POST和DELETE以檢索和修改資源。值得注意的是,由于安全方面的考慮,Javascript被限制了跨域訪問(wèn)的能力,因此在調(diào)用XMLHttpRequest的時(shí)候,應(yīng)該注意跨域訪問(wèn)的問(wèn)題,比如使用同一個(gè)域的動(dòng)態(tài)文件做代理,或者其他方法避開(kāi)跨域訪問(wèn)的問(wèn)題。我這里給出的代碼主要是根據(jù)我先前的那段代碼修改過(guò)來(lái)的,其客戶(hù)端JavaScript代碼如下所示:

  1. function httpGet(url, method, data) {  
  2.     var xmlhttp;  
  3.     xmlhttp = new XMLHttpRequest();  
  4.     xmlhttp.open (method, url + "?" + data, false);  
  5.     xmlhttp.setRequestHeader ("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");  
  6.     xmlhttp.setRequestHeader ("Content-Length", data.length);  
  7.     xmlhttp.send (null);  
  8.     if (xmlhttp.Status = 200) return xmlhttp.responseText;  
  9. }  
  10.  
  11. function httpPost(url, method, data) {  
  12.     var xmlhttp;  
  13.     xmlhttp = new XMLHttpRequest();  
  14.     xmlhttp.open (method, url, false);  
  15.     xmlhttp.setRequestHeader ("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");  
  16.     xmlhttp.setRequestHeader ("Content-Length", data.length);  
  17.     xmlhttp.send (data);  
  18.     if (xmlhttp.Status = 200) return xmlhttp.responseText;  
  19. }  
  20.  
  21. function httpPut(url, method, data) {  
  22.     var xmlhttp;  
  23.     xmlhttp = new XMLHttpRequest();  
  24.     xmlhttp.open (method, url, false);  
  25.     xmlhttp.setRequestHeader ("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");  
  26.     xmlhttp.setRequestHeader ("Content-Length", data.length);  
  27.     xmlhttp.send (data);  
  28.     if (xmlhttp.Status = 200) return xmlhttp.responseText;  
  29. }  
  30.  
  31. function httpDelete(url, method, data) {  
  32.     var xmlhttp;  
  33.     xmlhttp = new XMLHttpRequest();  
  34.     xmlhttp.open (method, url + "?" + data, false);  
  35.     xmlhttp.setRequestHeader ("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");  
  36.     xmlhttp.setRequestHeader ("Content-Length", data.length);  
  37.     xmlhttp.send (null);  
  38.     if (xmlhttp.Status = 200) return xmlhttp.responseText;  
  39. }  
  40.  
  41. function test() {  
  42.     document.write (httpGet("http://localhost/rest/service.asp""GET""do=GET"));  
  43.     document.write (httpGet("http://localhost/rest/service.asp""POST""do=POST"));  
  44.     document.write (httpGet("http://localhost/rest/service.asp""PUT""do=PUT"));  
  45.     document.write (httpGet("http://localhost/rest/service.asp""DELETE""do=DELETE"));  
  46. }  

我這里使用這個(gè)代碼編寫(xiě)了一個(gè)簡(jiǎn)單的應(yīng)用例子,就是管理Twitter好友的應(yīng)用,大家點(diǎn)這里可以下載使用,因?yàn)榭缬蛟L問(wèn)的問(wèn)題,這段JavaScript只支持IE在本地使用。

【編輯推薦】

  1. 如何優(yōu)化JavaScript腳本的性能
  2. JavaScript控制Excel打印完美解決方案
  3. 用Javascript連接Access數(shù)據(jù)庫(kù)的方法
  4. JavaScript的document和window對(duì)象詳解
  5. 淺談JavaScript中面向?qū)ο蠹夹g(shù)的模擬
責(zé)任編輯:yangsai 來(lái)源: 月光博客
相關(guān)推薦

2012-09-19 14:27:16

Worklight

2012-11-28 11:05:42

IBMdW

2014-03-10 10:22:40

JavaScriptJS弊端

2011-08-15 14:09:59

JavaHBase

2011-04-22 10:34:09

SimpleFrame

2009-03-18 14:44:34

LinuxqTwitterTwitter

2015-06-03 09:27:05

JavaScript客戶(hù)端檢測(cè)技術(shù)

2014-01-07 14:39:26

Android開(kāi)發(fā)RxJavaREST

2021-09-22 15:46:29

虛擬桌面瘦客戶(hù)端胖客戶(hù)端

2016-11-14 18:02:50

2016-10-09 08:35:09

Linux桌面REST

2025-01-07 08:10:00

CefSharpWinformWindows

2012-12-07 10:15:53

IBMdW

2024-12-02 09:19:44

2009-06-23 14:00:49

JavaFX開(kāi)發(fā)

2024-01-17 19:05:44

mget優(yōu)化數(shù)據(jù)庫(kù)

2011-03-21 14:53:36

Nagios監(jiān)控Linux

2011-04-06 14:24:20

Nagios監(jiān)控Linux

2011-08-17 10:10:59

2023-12-09 14:29:30

編程語(yǔ)言Go
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)