Ajax+SpringMVC實現跨域請求
什麼是跨域請求:所謂跨域請求,就是在一個專案裡面請求另一個專案的controller。
為什麼要跨域請求:瀏覽器的同源策略是瀏覽器上為安全性考慮實施的非常重要的安全策略。從一個域上載入的指令碼不允許訪問另外一個域的文件屬性。
一、普通請求
普通請求的Ajax:
$.ajax({
url: "threshold/testAjax",//請求地址
type: "POST",
dataType: "json",
async:false,
success: function(data) {//data是預設的,接收前臺返回的資料
$("#id").val(data.id);
$("#voltage").val(data.voltage);
$("#electric").val(data.electric);
}
});
普通請求的Controller:
@RequestMapping(value = "testAjax", method = RequestMethod.POST)
@ResponseBody
public Threshold testAjax(){
List<Threshold> thresholds = thresholdService.findAll();
if(thresholds != null && thresholds.size() > 0){
return thresholds.get(0);
} else {
return null;
}
}
二、跨域請求:
跨域請求的Ajax:
$.ajax({
type: "GET",
url: "http://192.168.1.120:8080/CallPolice-1/threshold/getJsonp",//請求地址
async:true,//預設為true,不使用非同步false執行時會等success中結束再繼續執行下面
dataType: "jsonp",
jsonpCallback:"callback", //Jquery生成驗證引數的名稱
success: function(data) {//data是預設的,接收前臺返回的資料
alert("dasdas---"+JSON.stringify(data));
}
});
function callback(data){
var jsonobj = eval('(' + data + ')');
if(jsonobj.orderCount!=""){
alert("回撥成功");
}
}
跨域請求的Controller:
/*
* 測試跨域請求
* */
@RequestMapping(value="getJsonp",method=RequestMethod.GET)
@ResponseBody
public void test(HttpServletRequest request,HttpServletResponse response){
response.setHeader("P3P", "CP=CAO PSA OUR");
response.addHeader("Access-Control-Allow-Origin", "*");
String data = request.getParameter("data");
//1:業務邏輯
JSONObject returnMap = new JSONObject();
//2:輸入json資料到前臺頁面
returnMap.put("name", "test name");
returnMap.put("age", 11);
returnMap.put("address", "test address");
PrintWriter pWriter = null;
try {
pWriter = response.getWriter();
pWriter.write("callback('" + returnMap.toString() + "')");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
if(pWriter!=null){
pWriter.flush();
pWriter.close();
}
}
}
相關文章
- 簡單的實現jsonp跨域請求JSON跨域
- 跨域請求跨域
- springboot系列文章之實現跨域請求(CORS)Spring Boot跨域CORS
- CORS跨域請求CORS跨域
- vue跨域請求Vue跨域
- 允許跨域請求跨域
- vue axios 請求跨域VueiOS跨域
- 巧用javascript ajax,實現跨域請求外帶,增大漏洞危害JavaScript跨域
- Cross-origin 跨域請求ROS跨域
- 同源政策與跨域請求跨域
- php 支援jsonp跨域請求PHPJSON跨域
- 跨域請求後端配置跨域後端
- NGINX如何配置跨域請求Nginx跨域
- Vue——介面請求支援跨域Vue跨域
- 跨域之OPTION請求【轉載】跨域
- web 跨域請求安全問題Web跨域
- IE9 跨域請求相容IE9跨域
- 跨域是什麼?跨域請求資源有哪些方法?跨域
- CROS跨域請求設定,偏重前端ROS跨域前端
- 使用cors完成跨域請求處理CORS跨域
- 如何使flask允許跨域請求Flask跨域
- SpringBoot解決跨域請求攔截Spring Boot跨域
- ajax跨域請求之CORS的使用跨域CORS
- options 請求跨域問題處理跨域
- 13、HttpClient伺服器跨域請求HTTPclient伺服器跨域
- Ajax 跨域請求 Access to XMLHttpRequest 解決方案跨域XMLHTTP
- 跨域請求cookie資源共享詳解跨域Cookie
- CORS跨域限制以及預請求驗證CORS跨域
- 前端http請求跨域問題解決前端HTTP跨域
- js ajax請求封裝及解決node請求跨域問題JS封裝跨域
- 關於vue請求laravel介面跨域問題VueLaravel跨域
- .net webapi 處理前端請求跨域問題WebAPI前端跨域
- java解決請求跨域的兩種方法Java跨域
- 跨域請求中常見的幾個問題跨域
- 搞定所有的跨域請求問題: jsonp & CORS跨域JSONCORS
- React 解決fetch跨域請求時session失效React跨域Session
- Python全棧Web(AjaxJQuery-AJAX跨域請求)Python全棧WebjQuery跨域
- vue請求後端資料和跨域問題Vue後端跨域