本文目錄一覽:
如何在java代碼中執行jsonp請求
首先你要知道jsonp工作原理,實質上也就是利用了一些旁門左道(瀏覽器對資源文件無限制的特點)來進行的跨域訪問,能共用的技術是http,所以在java里可以使用httpclient工具來發送http請求,並把請求做成jsonp的請求模樣就行了。
jsonp公開接口返回中文亂碼問題
確認後台返回的是json格式的數據,同時試試將後台response的編碼方式設置為UTF-8
java中服務端怎麼實現jsonp
1. JSONP定義
JSONP是英文JSON with Padding的縮寫,是一個非官方的協議。它允許在服務器端生成script tags返回至客戶端,通過javascript callback的形式來實現站點訪問。 JSONP是一種script tag的注入,將server返回的response添加到頁面實現特定功能。
2.JSONP由來
要解釋JSONP的來由,先要說一下瀏覽器的“同源策略(SOP:Same Origin Policy)”。 簡而言之,就是瀏覽器限制腳本程序只能和同協議、同域名、同端口的腳本進行交互,這包括共享和傳遞變量等。cookie的傳遞也是遵從同樣策略。這就造成一些涉及到多個服務器的應用在整合時一些麻煩。跨域訪問的問題造成A站點的Ajax代碼無法訪問B站點的數據。
如何解決跨域訪問呢?那就要藉助瀏覽器的一個特性:儘管瀏覽器不允許頁面中的腳本程序跨域讀取數據,但卻允許HTML引用跨域的資源,如圖片,CSS和腳本程序。對於腳本程序的引用比較特殊,它被瀏覽器解析以後,就和本地的腳本程序別無二致且可立即進行解釋並執行。如在B站點的一個js文件,一個簡單的提示框:alert(“This is Victor!”);。在A站點引用這個js,這個腳本就會在B站點的應用中執行,顯示一個alert信息。由於站外腳本的引用是通過script tag來實現的,而腳本程序又可通過DOM的方式可以對HTML頁面的所有標籤進行控制(包括動態的創建script標籤),這就可以實現通過調用站外程序對本地資源進行更改了。另外,通過script 標記的使用,就可從服務端直接返回可執行的JavaScript函數調用或者JSON數據。
3. JSONP原理與實現
首先在客戶端註冊一個callback, 然後把callback的名字傳給服務器。此時,服務器先生成 JSON數據。然後以JavaScript 語法的方式,生成一個function, function名字就是傳遞上來的參數jsonp.
然後,將JSON數據直接以入參的方式,放置到function中,這樣就生成了一段 js 語法的文檔,返回給客戶端。
最後,在客戶端瀏覽器中解析script標籤,並執行返回的JavaScript文檔,此時數據作為參數,傳入到了客戶端預先定義好的回調函數里(動態執行回調函數) 。
java寫一個接口實現將移動端的數據存放到數據庫指定的表中
//前端要調用後端的接口可以是用jsonp
前端寫法:
$.ajax({
url:”/xxx.java”,
data:{type:”xxx”,a:”aaa”},
async: false,
dataType: “jsonp”,
jsonp: “callback”,
jsonpCallback: “returnLiveViewData”,
success: function (msg) {
},
error:function(){
alert(請求失敗);
}
};
//後端返回結果
“returnLiveViewData({“records”: [{“name”: “aaa”, “IP”: “11.11.11.11”, “node”: 114, },{“name”: “bob”, “IP”: “11.11.11.22”, “node”: 115, },]})”;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/289230.html