1. 程式人生 > >ajax請求處理

ajax請求處理

!= 新的 etime www 因特網 toc 不能 .html 安全

什麽是AJAX?
AJAX的全程是Asynchronous JAVAScript and XML(異步的javaScript和xml);
ajax不是新的編程語言,而是一種使用標準的新方法。ajax是與服務器交換數據並更新部分網頁的藝術;
ajax的優點:

  • 頁面無刷新,用戶的體驗好;
  • 使用異步方式與服務器通信,具有更加迅速的響應能力;
    可以把服務器負擔的工作轉嫁到客戶端,利用來處理,減少服務器和寬帶的負擔,節約控件和寬帶租用的成本;
  • 基於標準化的並被廣泛支持的技術,不需要下載插件或者小程序;
  • ajax可使因特網應用程序更小,更快,更友好;
    ajax的缺點:
  • ajax不支持瀏覽器back按鈕
  • 安全問題ajax暴露了與服務區交互的細節
  • 對搜索疫情的支持比較弱
  • 破壞了程序的異常機制;
  • 不容易調試;
    今天遇到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>

ajax請求處理