ajax

1. 解决问题1

    在post的数据的里面有带+等特殊字符的时候,数据传到后台的时候,可能会出现+丢失的情况‘???

    解决办法1:

              前台数据用 window.encodeURIComponent 处理一下:

               select_item["{{key}}"] = window.encodeURIComponent($("#id_select_{{forloop.counter0}}").val());

   解决办法2:

              post请求的时候尽量用data的值尽量用post的形式,不要用&连接数据

             

2. 获取web server的ip: request.META["REMOTE_ADDR"]

3. window.history.back(-1);  返回上一页

 4. 当ajax请求进入 error, 然后XMLHttpRequest.status有下列几种情况:

(1). url不存在

(2). url不可到达

(3). 发送了跨域请求

(4). 数据格式出错

(5). ajax在调用之前,就已经取消了。也就是说根本没有调用这个ajax请求。

经过逐一的排除,(1)、(2)、(3)、(4)都排除掉了,就剩下(5)了。然后我就再仔细检查了一下我的jsp的form表单,果然,发现提交按钮type="submit",这里type为submit,当点击提交按钮时,由于type="submit",表单提交,页面跳转,ajax请求根本就没有发出,所以status为0。要排除问题,只需要将提交按钮的type="submit"改为type="button",问题即可解决。

解决方法:将form表单的提交按钮的type="submit"改为type="button"。

下面来总结一下:type="submit"和type="button"的区别。

submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。
如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button,即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。或者在使用submit时验证时加return true或false。

submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上,submit会提交表单,button不会提交表单.
两者主要区别在于:
submit默认为form提交,可以提交表单(form).
button则响应用户自定义的事件,如果不指定onclick等事件处理函数,它是不做任何事情.当然,button也可以完成表单提交的工作.
INPUT   type=submit 即发送表单,按回车提交表单   
INPUT   type=button 就是单纯的按钮功能,提交的是innerTEXT

  

原文地址:https://www.cnblogs.com/ting152/p/12502906.html