什麼是AJAX?
AJAX的全程是Asynchronous JAVAScript and XML(異步的javaScript和xml);
ajax不是新的編程語言,而是一種使用標準的新方法。ajax是與服務器交換數據並更新部分網頁的藝術;
ajax的優點:
- 頁面無刷新,用戶的體驗好;
- 使用異步方式與服務器通信,具有更加迅速的響應能力;
可以把服務器負擔的工作轉嫁到客戶端,利用來處理,減少服務器和寬帶的負擔,節約控件和寬帶租用的成本; - 基於標準化的並被廣泛支持的技術,不需要下載插件或者小程序;
- ajax可使因特網應用程序更小,更快,更友好;
ajax的缺點: - ajax不支持瀏覽器back按鈕
- 安全問題ajax暴露了與服務區交互的細節
- 對搜索疫情的支持比較弱
- 破壞了程序的異常機制;
- 不容易調試;
ajax跨域調用接口出現的問題:
第一個:ajax的跨域問題我使用的jsonp格式實現跨域;
出現的問題:格式jsonp的形式,返回數據的形式是在一個callback函數中返回的數據;所以需要有:
前段代碼:<br/>dataType: "jsonp",<br/>jsonp:"callback", <br/>jsonpCallback:"successCallback",<br/>
後端代碼:
`
需要傳入的參數 HttpServletRequest req,HttpServletResponse rps
JSONObject json = new JSONObject();
json.put("baseJson", baseJson);
try {
// 這裏的successCallback就是前段代碼的jsonCallback對應的值;
rps.getWriter().print("successCallback("+json.toJSONString()+")");
} catch (IOException e) {
e.printStackTrace();
}
`
今天遇到ajax傳遞日期參數的問題:
-
發現ajax在傳遞日期參數的時候,javascript已經默認的額toString()方法轉爲字符轉格式了;
經過查閱資料發現:ajax發送的請求參數和接收服務器端返回的數據都是文本數據,ajax不支持二進制數據傳輸,所以會調用toStirng()方法把參數轉爲字符串。 ajax的post和get的數據都是以文本方式傳輸,無論是客戶端提交的數據還是服務器端返回的數據;
ajax傳遞日期類型的參數,傳遞的是日期類型的字符串,在後端代碼中需要操作,將字符串轉爲日期類型;
接下來問題又出現了
:
當我按住日期參數查詢數據庫的時候,報錯:
invalid comparison: java.util.Date and java.lang.String感謝: https://www.cnblogs.com/dflmg/p/6641168.html
具體的原因是因爲:我在mybatis.xml文件做查詢的時候,日期類型不能判斷是否爲null
報錯的代碼:
<select id="getIntegralCoefficientStockList" resultType="IntegralCoefficientStock" parameterType="IntegralCoefficientStock">
SELECT
coefficient_stock_id,
coefficient_stock,
create_time,
create_by,
stock_code
FROM integral_coefficient_stock
<where>
<if test="createTime!=null and createTime!='' ">
AND create_time = #{createTime}
</if>
<if test="stockCode!=null and stockCode!='' ">
AND stock_code like "%"#{stockCode}"%"
</if>
</where>
</select>
而正確的代碼應該是這樣的:
<select id="getIntegralCoefficientStockList" resultType="IntegralCoefficientStock" parameterType="IntegralCoefficientStock">
SELECT
coefficient_stock_id,
coefficient_stock,
create_time,
create_by,
stock_code
FROM integral_coefficient_stock
<where>
<if test="1">
AND create_time = #{createTime}
</if>
<if test="stockCode!=null and stockCode!='' ">
AND stock_code like "%"#{stockCode}"%"
</if>
</where>
</select>