什么是AJAX? AJAX的全程是Asynchronous JAVAScript and XML(异步的javaScript和xml); ajax不是新的编程语言,而是一种使用标准的新方法。ajax是与服务器交换数据并更新部分网页的艺术; ajax的优点:
- 页面无刷新,用户的体验好;
- 使用异步方式与服务器通信,具有更加迅速的响应能力; 可以把服务器负担的工作转嫁到客户端,利用来处理,减少服务器和宽带的负担,节约控件和宽带租用的成本;
- 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序;
- ajax可使因特网应用程序更小,更快,更友好; ajax的缺点:
- ajax不支持浏览器back按钮
- 安全问题ajax暴露了与服务区交互的细节
- 对搜索疫情的支持比较弱
- 破坏了程序的异常机制;
- 不容易调试;
ajax跨域调用接口出现的问题:
第一个:ajax的跨域问题我使用的jsonp格式实现跨域;
出现的问题:格式jsonp的形式,返回数据的形式是在一个callback函数中返回的数据;所以需要有:
前段代码:
dataType: "jsonp", jsonp:"callback", jsonpCallback:"successCallback",
后端代码:
`
需要传入的参数 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>