1.ajax请求方式、参数类型、状态码?
请求方式:Get,Post
url: 要求为String类型的参数,发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。
async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。
cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。
data: 要求为Object或String类型的参数,发送到服务器的数据。
dataType: 要求为String类型的参数,预期服务器返回的数据类型。
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;
script:返回纯文本JavaScript代码。不会自动缓存结果。
json:返回JSON数据。
jsonp:JSONP格式。
text:返回纯文本字符串。
状态码
200 成功处理了请求,一般情况下都是返回此状态码;
400 服务器不理解请求的语法。
404 服务器找不到请求的网页。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
2. Jquery常用的选择器?
1.1、ID选择器 #id
描述:根据给定的id匹配一个元素, 返回单个元素
示例:$("#test") 选取 id 为 test 的元素
1.2、类选择器 .class
描述:根据给定的类名匹配元素,返回元素集合
示例:$(".test") 选取所有class为test的元素
1.3、元素选择器 element
描述:根据给定的元素名匹配元素,返回元素集合
示例:$("p") 选取所有的
元素
1.4、*
描述:匹配所有元素,返回元素集合
示例:$("*") 选取所有的元素
3.前后端是如何做数据交互的?前端怎么传给后端json数据?
一、通过表单传递参数
前端怎么传给后端json数据?
二、通过ajax传递参数(有post和get写法)
前端向后端传递json数据时,需要使用JSON.stringify()
将json对象转化为json字符串。
Django后端接收前端传递过来的json数据,不能使用request.POST
而是要使用request.body
1.第一种:ajax
传给后台的数据通过json封装起来,再用ajax将json传到后台
2、通过form表单的action传值
一般情况下数值在传给后台之前需要校验,可以在form中的onsubmit调用js方法进行校验,当js方法返回值为true时,触发action,当js方法返回值为false时,action不触发。
这样处理的好处在于当用户输入不正确时,不会刷新页面,表单仍然会保留用户之前的输入
JS方法: JSON.stringfiy(demo);
4.前端和后台都是如何解决跨域问题的?
一个系统访问另一个系统才会存在跨域,同系统访问不存在跨.
跨域是指跨域名的访问,以下情况都属于跨域:
1.域名不同: www.jd.com 与 www.taobao.com
2.域名相同,端口不同: www.jd.com:8080 与 www.jd.com:8081
3. 二级域名不同: www.baidu.wenku.com www.baid.tieba.com
如果域名和端口都相同,但是请求路径不同,不属于跨域,如:
www.jd.com/item
www.jd.com/goods
只要域名(ip)和端口号有一样不同,那么都是跨域
http://localhost:8080 前端系统 发送Ajax取后端系统获取数据
http://localhost:80 后端系统
跨域不一定会有跨域问题。
因为跨域问题是浏览器对于ajax请求的一种安全限制:
一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。
因此:跨域问题是针对ajax的一种限制。
- 1.Jsonp-- json变种
最早的解决方案,利用动态去填充script标签可以跨域的原理实现。
<sccipt src=”http:/wwww/ssss”>
限制:
需要服务的支持
只能发起GET请求
- 2.nginx反向代理(部署)
思路是:利用nginx反向代理把跨域变为不跨域,支持各种请求方式
原理是:前端的请求访问后端是跨域,nginx代理会让他的请求转回去访问自己,就不存在跨域问题了,而nginx会代理前端的请求发送一个和后端域名端口一致的请求,再返回数据,相当于避免了前端跨域的直接请求。
缺点:需要在nginx进行额外配置,语义不清晰 –
- 3.CORS(