很久沒寫博客了,今天發現了一個很有意思的問題,寫下來分享一下
話不多說,貼前端代碼:
<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btnky").bind('click',function(){
//發送給服務端
var postMoney=getMoney();
alert("發送給后台:"+postMoney);
$.post("to_json.html",{postMoney:postMoney},function(data){
alert(data);
});
});
})
function getMoney(){
return 1;
}
</script>
</head>
<body>
<input type="button" value="發送后台" id="btnky">
</body>
前端一個很簡單的ajax提交代碼,對不對?通過getMoney()函數 得到一個值,然后發送給后台,注意,該函數是不包含在$()代碼塊里面的
后台代碼:
也是很簡單的,只是響應用戶的發送數據,代碼如下:
@RequestMapping("/to_json.html")
@ResponseBody
public String to_Json(@RequestParam("postMoney") int postMoney){
System.out.println("前端發送的錢:"+postMoney);
return "你給服務端發送的money是:"+postMoney;
}
OK,萬事具備,頁面走起!!
頁面點擊發送

看后台:

貌似沒錯,后台如願得到我們要的數據
只是,如果有些搗蛋鬼喜歡搗蛋呢?比如我用火狐的firefox注入一個getMoney()方法

好吧,我注入了一個和頁面上相同的函數getMoney(),居然返回100000.太壞了..
OK,讓我們在點擊發送后台按鈕,看看是什么情況呢?

天吶.......居然真給變了...
好吧,再看看我們的服務端,是不是也會隨波逐流呢?

我已經無語了,這別個搗蛋鬼豈不是能隨便傳送數據...
不然,如果頁面修改一下呢?代碼如下:
<script type="text/javascript">
$(function(){
$("#btnky").bind('click',function(){
//發送給服務端
var postMoney=getMoney();
alert("發送給后台:"+postMoney);
$.post("to_json.html",{postMoney:postMoney},function(data){
alert(data);
});
});
function getMoney(){
return 1;
}
})
</script>
</head>
<body>
<input type="button" value="發送后台" id="btnky">
</body>
注意,這次我的getMoney()函數寫在$()這個里面去了
OK,我們在刷新頁面,做相同的操作,注入一個getMoney

很奇怪呢,居然沒有變化,不放心,再看看后台:

也沒有變化,是不是很有意思呢?
呵呵,各位有什么看法呢?暢所欲言哦
