ajax請求處理

什麼是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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章