轉自原文 在Html5中與服務器交互
剛剛涉足職場,上頭就要我研究HTML5,內嵌到手機上,這對我來說完全是一個陌生的領域,不過也正好給自己一個機會來學習,最近做到要跟服務器交互這部分,這部分可是卡了很久,不過最終還是解決了。下面介紹兩種方法:
- ajax
- Cordova Http
首先要說明一點,如果是在PC端上進行交互的話,這就是跨域問題,需要服務器那邊進行一些修改,否則的話是不能訪問的。我一開始也是在PC端上測試的,所以這個問題一直卡了很久,原來只要內嵌到手機上就不存在跨域問題了,真蛋疼~,所以我介紹的兩張方法都是基於內嵌到手機上的,要注意了!
ajax及使用
如果是用原生態的ajax寫訪問的話,就比較麻煩,所以這次我用的是jQuery封裝好的ajax,先上代碼:
$.ajax({ type:"GET", url:"***", dataType:"json", data:{ appId:"", passportCode:"*******", clientTye:"android", }, success:function(data){ alert("訪問成功" + JSON.stringify(data)); }, error:function(jqXHR){ alert("發生錯誤" + jqXHR.status); } });
這里面有好幾個字段,這幾個字段的意思是:
字段 | 描述 |
---|---|
type | 指明是get操作還是post操作 |
url | 要訪問的地址,就是服務器提供的接口 |
dataType | 服務器預期返回的數據格式,如(xml,json,html) |
data | 參數 |
success | 訪問成功時的回調函數 |
error | 訪問失敗時的回調函數 |
補充說一下:success:function(data,textStatus,jqXHR)這三個參數是可選的,我習慣就只帶一個參數,就是data。這個返回的data已經是json對象來的,可以直接解析的。假如返回的是
{
result:0,
description : ””,
hasNewVersion : ””,
verson: “”,
url:““,
clientType:““ ,
updateDesc:““ ,
updateTime:““ ,
mustUpdate:””
},
那么data.result就是0了,是不是覺得很方便呢。效果圖:
Cordova Http
這種方法是要基於你的項目是cordova項目。這里稍微說兩句,cordova前身是phoneGap,其實兩者是一樣的,都是移動web的開發框架,有興趣的可以去了解一下!由於這篇文章(Cordova環境安裝配置 )主要是講如何使用這個插件,環境搭建的就不說了。
-
安裝插件
在命令行里面進入到自己的項目里面:
點擊回車,等待一會就可以了,再打開自己的項目的plugins,就可以看到cordova-plugin-http這個文件,證明插件安裝成功了!
-
使用
cordovaHTTP.post("url地址", { appId:"", phone:"", password:"", clientTye:"web", //參數 }, {//這個我基本一直都是空的}, function(response) { //成功回調的函數 // prints 200 alert(response.status + "訪問成功" + "\n返回的json數據 為:" + response.data); try { //轉化為json對象 var jsonbj = JSON.parse(response.data); } catch(e) { console.error("JSON parsing error"); } }, function(response) { //失敗回調的函數 // prints 403 alert("訪問失敗" + response.status + "、" + response.data); //prints Permission denied console.log(response.error); });
這個也沒什么好說的,看完之后也明白的了。
具體請參考[https://github.com/wymsee/cordova-HTTP][2].
其實這個難度也不是很大的,只要看一下就知道怎樣用了,希望對大家和對自己也有用!