-
HTTP是一種無狀態(tài)的協(xié)議 ,無狀態(tài)是指不建立持久的連接,也就是說服務(wù)端不保留相關(guān)的連接信息
查看全部 -
什么是HTTP
查看全部 -
兼容IE6 IE5的XML對象
查看全部 -
Http請求,錯誤碼
查看全部 -
瀏覽器兼容
查看全部 -
跨域: Javascript出于安全方面的考慮,不允許跨域調(diào)用其他頁面的對象。什么是跨域呢?簡單地理解就是因?yàn)閖avascript同源策略的限制,a.com域名下的js無法操作b.com或是c.a.com域名下的對象。 跨域處理,三種方法: 1、處理跨域方法一 ? 代理 通過在同域名下的web服務(wù)器端創(chuàng)建一個代理: 北京服務(wù)器(域名:www.beijing.com) 上海服務(wù)器(域名:www.shanghai.com) 比如在北京的web服務(wù)器的后臺(www.beijing.com/proxy-shanghaiservice.php)來調(diào)用上海服務(wù)器(www.shanghai.com/services.php)的服務(wù),然后再把訪問結(jié)果返回給前端,這樣前端調(diào)用北京同域名的服務(wù)就和調(diào)用上海的服務(wù)效果相同了。 2、處理跨域方式二——JSONP(只支持GET請求): JSONP可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。 在www.aaa.com頁面中: <script> function jsonp(json){ ? ? alert(json["name"]); } </script> <script src="http;//www.bbb.com/jsonp.js"></script> 在www.bbb.com頁面中: jsonp({'name':'xx','age':24}) 3、處理跨域的方法三——XHR2: 1、HTML5提供的XMLHttpRequest Level2已經(jīng)實(shí)現(xiàn)了跨域訪問以及其他的一些新功能 2.IE10以下的版本都不支持 3.在服務(wù)器端 header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET');
查看全部 -
a域名去聲明一個方法,b域名去調(diào)用這個方法 script可以向不同頁面提交http請求; jsonp的方式只是針對get請求方式,不支持post請求 $.ajax({ type:"GET", url:"http://127.0.0.1:8080/ajaxdemo/service.php?number"+$("#keyword").val(), dataType:"jsonp", ?//由"json"改為"jsonp" jsonp:"callback", ?//增加此項(xiàng),用于后臺代碼編寫 success:function(data){ if(data.success){ $("#searchResult").html(data.msg); } else{ $("#searchResult").html("出現(xiàn)錯誤"); } }, error:function(er){ alert(er.status); } }); $jsonp = $_GET["callback"]; $result = '()';
查看全部 -
域名地址的組成: 1、完整的url:http://idcbgp.cn:8080/video.php?id=001#mediaid=6238 2、協(xié)議(protocol):http:// 3、主機(jī)(host):idcbgp.cn:8080 4、主機(jī)名/域名(hostname):idcbgp.cn ? ?子域名:www ? ?主域名:imooc.com 5、端口(port):8080 6、請求路徑(pathname):video.php 7、請求參數(shù)(search):id=001 8、哈希碼(hash):#mediaid=6238 【同源策略:兩者擁有相同的協(xié)議、域名和端口時,就屬于同一個源(origin)(或者說同一個域);XHR請求不能跨域訪問和調(diào)用?!? 跨域:不同域之間相互請求資源 javaScript處于安全方面的考慮,不允許跨域調(diào)用其他頁面的對象。什么是跨域呢,簡單地理解就是因?yàn)閖avaScript同源策略的限制,a.com域名下的js無法操作b.com或是c.a.com域名下的對象 事實(shí)上HTTP和HTTPS兩個協(xié)議的url看上去都可以省略端口號,但是他們訪問的默認(rèn)端口不同 HTTP默認(rèn)訪問80端口,HTTPS默認(rèn)訪問443端口,所以http訪問https肯定是跨域 主域名: abc.com 主域名可以有如下的子域名: www.abc.com bbs.abc.com beijing.bbs.abc.com haidian.beijing.bbs.abc.com 處理跨域方法1--代理 通過在同域名的web服務(wù)器端創(chuàng)建一個代理 北京服務(wù)器(域名:www.beijing.com) 上海服務(wù)器(域名:www.shanghai.com) 比如在北京的web服務(wù)器的后臺(www.beijing.com/proxy-shanghaiservice.php)來調(diào)用上海服務(wù)器(www.shaghai.com/service.php)的服務(wù),然后再把響應(yīng)結(jié)果返回給前端,這樣前端調(diào)用北京同域名的服務(wù)就和調(diào)用上海的服務(wù)效果相同了。
查看全部 -
1、在線引用(百度靜態(tài)資源公共庫) 2、jq實(shí)現(xiàn)Ajax(代碼如下,圖為各屬性解析) <script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.js"></script> $(document).ready(function(){ $("#save").click(function(){ $.ajax({ type:"post", url:"service.php", dataType:"json", data:{ name:$("#staffName").val(), number:$("#staffNumber").val(), sex:$("#staffSex").val(), job:$("#staffJob").val() }, success:function(data){ if(data.success){$("#createResult").html(data.msg)} else{$("#createResult").html("error: " + data.msg) } }, error:function(jqXHR){ alert("error: "jqXHR.status); } }); }); });
查看全部 -
1、json解析的方法有兩種:eval()和parse()方法 eval() 較危險,不光解析了字符串,還解析了js方法,無論何時用eval()都是非常危險的。-----不建議使用 JSON.parse()較好,會解析出錯誤。 //例子:首先定義了JSON字符串jsondata eval()方法: var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"黃蓉","age":30}]}'; var jsonobj=veal('('+jsondata+')'); alert(jsonobj.staff[0].name); parse()方法: var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"黃蓉","age":30}]}'; var jsonobj=JSON.parse(jsondata); alert(jsonobj.staff[0].name); 都可以,若把a(bǔ)ge后的70改成alert(123);若用eval()方法,發(fā)現(xiàn)頁面是先彈出123,再彈出洪七;也就是說用eval不僅解析了字符串,還執(zhí)行了JS里的方法 用parse()解析字符串,發(fā)現(xiàn)會拋出一個錯誤。 這說明用eval()不會看json是否合法,eval非常危險。所以盡量使用JSON.parse方法,來解析json里的字符串,而且還可以解析出json里的一些錯誤。 2、json校驗(yàn)工具jsonlint 3、把json格式化,地址:jsonlint.com
查看全部 -
一.JSON基本概念 1、javaScript對象表示法(javaScript object notation) 2、json是存儲和交換文本信息的語法,類似xml。它使用鍵值對的方式來組織,易于人們閱讀和編寫,同時也易于機(jī)器解析和生成。 3、json是獨(dú)立于語言的,也就是說不管什么語言,都可以解析json,只需要按照json的規(guī)則來就行。 4、xml也是一種傳遞信息的方法。 二、json和xml比較 1、json的長度和xml格式比起來很短小 2、json讀寫的速度更快。 3、json可以使用javaScript內(nèi)建的方法直接進(jìn)行解析,轉(zhuǎn)換成javaScript對象,非常方便。 三、json語法規(guī)則 1、json數(shù)據(jù)的書寫格式是:名稱/值對。 名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在后面(同樣在雙引號中),中間用冒號隔開,比如 "name":"郭靖"。 和javaScript對象表示法不同,javaScript對象表示法的鍵值不需要用引號,但是json的鍵值要用引號。 2、json的值可以是下面這些類型: (1)數(shù)字(整數(shù)或浮點(diǎn)數(shù)),如123,1.23 (2)字符串(在雙引號中) (3)邏輯值(true或false) (4)數(shù)組(在方括號中) (5)對象(在花括號中) (6)null 3、json典型例子: { ?"staff":[ ? ?{"name":"洪七","age":70}, ? ?{"name":"郭靖","age":35} ?] } 四、(外注)JSON建構(gòu)于兩種結(jié)構(gòu): 1、“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。 2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。
查看全部 -
XMLHttpRequest取得響應(yīng) * responseText:獲得字符串形式的響應(yīng)數(shù)據(jù) * responseXML:獲得XML形式的響應(yīng)數(shù)據(jù)(比較少) * status和statusText:以數(shù)字和文本形式返回HTTP狀態(tài)碼 * getAllResponseHeader():獲取所有的響應(yīng)報(bào)頭 * getResponseHeader():查詢響應(yīng)中的某個字段的值 readyState屬性的變化代表服務(wù)器響應(yīng)的變化 0:請求未初始化,open還沒有調(diào)用 1:服務(wù)器連接已建立,open已經(jīng)調(diào)用了 2:請求已接收,也就是接收到頭信息了 3:請求處理中,也就是接收到了響應(yīng)主體 4:請求已完成,且響應(yīng)已就緒,也就是響應(yīng)完成了 var request = new XMLHttpRequest() //建立XHR對象 request.open("GET","get.php",true); //用get方法異步打開get.php request.send(); //發(fā)送請求頭信息 request.onreadystatechange=function(){ if(request.readState===4&&request.status===200){ //做一些事情 request.responseText; } } 通過onreadystatechange事件 ,對readyState屬性進(jìn)行監(jiān)聽即對服務(wù)器的響應(yīng)進(jìn)行監(jiān)聽, readyState===4響應(yīng)完成; status===200,請求成功 建立異步請求的過程4個步驟: a:new一個XHR對象 b:調(diào)用open方法 c:send一些數(shù)據(jù) d:對過程進(jìn)行監(jiān)聽,來知道服務(wù)器是不是正確地做出了響應(yīng),接著可以做一些事情 (監(jiān)聽readyState,響應(yīng)成功可以做一些事情,比如獲取服務(wù)器響應(yīng)的內(nèi)容在頁面上做一些呈現(xiàn))
查看全部 -
XMLHttpRequest發(fā)送請求: 兩個方法 open(method,url,async) method:規(guī)定HTTP發(fā)送請求的方式是get還是post,不區(qū)分大小寫,一般來說用大寫 url:請求地址(相對地址或絕對地址) async:同步/異步(false/true),默認(rèn)是異步也就是true,可以不用填寫 send(string):發(fā)送到服務(wù)器(該參數(shù)可以填或者不填-----get方法不填或填null,post:一般要填) 例如: request.open("POST","create.php",true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded ")//設(shè)置HTTP頭信息--一定要寫在open()和send()之間 request.send("name=xxxx&set=xxx");
查看全部 -
1.HTTP是計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則 2.HTTP是一種無狀態(tài)的協(xié)議(不建立持久的連接,服務(wù)端不保留連接的相關(guān)信息,瀏覽器發(fā)出請求和服務(wù)器返回響應(yīng)是一個沒有記憶的過程) 3.一個完整的【HTTP請求】過程有7個步驟: 1>建立TCP連接 2>Web瀏覽器向Web服務(wù)器發(fā)送請求命令 3>Web瀏覽器發(fā)送請求頭信息 4>Web服務(wù)器應(yīng)答 5>Web服務(wù)器發(fā)送應(yīng)答頭信息 6>Web服務(wù)器向?yàn)g覽器發(fā)送數(shù)據(jù) 7>Web服務(wù)器關(guān)閉TCP連接 http請求: 1.HTTP請求的方法或動作,post或get 2.正在請求的URL 3.請求頭,包含一些客戶端環(huán)境信息,身份驗(yàn)證信息等 4.請求體(請求正文),包含要發(fā)送的一些字符串信息,表單信息等等 //請求頭和請求體之間有一個空行,表面請求頭已經(jīng)結(jié)束 GET:一般用于信息的獲取,使用URL傳遞參數(shù),對發(fā)送信息的數(shù)量也有限制,一般在2000字符!默認(rèn)方式,一般用于查詢、獲取操作,不是很安全,任何人可見,信息都顯示在URL中 POST:一般用于修改服務(wù)器上的資源,對所發(fā)送的數(shù)量無限制。一般用于發(fā)送表單數(shù)據(jù),新建,修改,刪除等操作,要安全一些,不在URL中顯示,對其他人不顯示。 【冪等】:一個操作任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。GET請求就是一種冪等操作。 【HTTP響應(yīng)】一般由3部分組成: ①一個數(shù)字或文字組成的狀態(tài)碼,用來顯示請求是成功還是失敗 ②響應(yīng)頭,和請求頭一樣包含許多有用信息,如服務(wù)器類型、日期時間、內(nèi)容類型和長度等 ③響應(yīng)體,即響應(yīng)正文//響應(yīng)頭和響應(yīng)體之間有空行 【HTTP狀態(tài)碼】 1XX:信息類,表示收到Web瀏覽器請求,正在進(jìn)一步處理中 2XX:成功,表示用戶請求被正確接收 3XX:重定向,表示請求沒有成功,客戶必須采取進(jìn)一步動作 4XX:客戶端錯誤,表示客戶端提交的請求有錯誤,例如:404 NOT Found,意味著請求中所引用的文檔不存在 5XX:服務(wù)器錯誤,表示服務(wù)器不能完成對請求的處理,如:500
查看全部 -
XMLHttpRequest對象;實(shí)例化一個對象就可以實(shí)現(xiàn)異步操作; var request = new XMLHttpRequest(); //可以兼容IE7+,F(xiàn)irefox,Chrome,Opera,Safari...但是不兼容IE6以下的版本。 var request; if(window.XMLHttpRequest{ ? ?request=new XMLHttpRequest(); )else ? ?request=new ActiveXObject("Microsoft.XMLHTTP");//可以兼容IE6、IE5版本
查看全部
舉報(bào)