java web支持jsonp的實現(xiàn)代碼
跨域說明
跨域指請求和服務(wù)的域不一致,瀏覽器和H5的ajax請求有影響,而對服務(wù)端之間的http請求沒有限制。
跨域是瀏覽器攔截了服務(wù)器端返回的相應(yīng),不是攔截了請求。
jsonp跨域請求處理
Jsonp(JSON with Padding) 是 json的一種"使用模式",可以讓網(wǎng)頁從別的域名(網(wǎng)站)那獲取資料,繞過同源策略(若地址里面的協(xié)議、域名和端口號均相同則屬于同源),即跨域讀取數(shù)據(jù)。
jsonp:利用script標(biāo)簽可以跨域,讓服務(wù)器端返回可執(zhí)行的Javascript函數(shù),參數(shù)為要回發(fā)的數(shù)據(jù)??煽醋鰩в谢卣{(diào)函數(shù)的ajax請求。
js代碼
<script type="text/javascript">
$(function(){
/*
//簡寫形式,效果相同
$.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",
function(data){
$("#showcontent").text("Result:"+data.result)
});
*/
$.ajax({
type : "get",
async:false,
url : "http:/XXX",
dataType : "jsonp",//數(shù)據(jù)類型為jsonp
jsonp: "jsonpCallback",//服務(wù)端用于接收callback調(diào)用的function名的參數(shù)
jsonpCallback:"自定義回調(diào)函數(shù)名"
success : function(data){
alert(data.info)
},
error:function(){
alert('fail');
}
});
});
</script>
java后端處理代碼
@ResponseBody
@RequestMapping(value = "/url", produces= MediaType.APPLICATION_JSON)
public String test(
HttpServletRequest request,
HttpServletResponse response) throws Exception{
String result = getResult();
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "private,no-cache,no-store,max-age=0");
response.setDateHeader("Expires", 0);
String str=request.getParameter("jsonpCallback");
if (str==null||str.equals("")) {
return result;
} else {
return str + "(" + result + ")";
}
}
CORS(協(xié)議跨域資源共享)(Cross-origin resource sharing)
它允許瀏覽器向跨源服務(wù)器,發(fā)出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制 詳細(xì)介紹 戳此
- Access-Control-Allow-Origin:* 允許所有域名的腳本訪問該資源
- Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS 運行什么方式訪問資源
- Access-Control-Expose-Headers:x-requested-with 暴露的信息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中將List拆分為多個小list集合的實現(xiàn)代碼
這篇文章主要介紹了Java中如何將List拆分為多個小list集合,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Spring Boot中整合Spring Security并自定義驗證代碼實例
本篇文章主要介紹了Spring Boot中整合Spring Security并自定義驗證代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
Spring中@Autowired與@Resource的區(qū)別詳析
@Autowired與@Resource都可以用來裝配bean,都可以寫在字段上,或?qū)懺趕etter方法上,下面這篇文章主要給大家介紹了關(guān)于Spring中@Autowired與@Resource區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-10-10
關(guān)于java中@Async異步調(diào)用詳細(xì)解析附代碼
本文主要介紹了java關(guān)于@Async異步調(diào)用詳細(xì)解析附代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
java 判斷一個數(shù)組中的數(shù)值是否連續(xù)相鄰的方法
下面小編就為大家分享一篇java 判斷一個數(shù)組中的數(shù)值是否連續(xù)相鄰的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
詳解在Spring-Boot中實現(xiàn)通用Auth認(rèn)證的幾種方式
這篇文章主要介紹了詳解在Spring-Boot中實現(xiàn)通用Auth認(rèn)證的幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07

