• 前端面试题(1)ajax


    (1)什么是http :http是计算机通过网络进行通信的规则,http是一种无状态的协议。

    (2)get方法与post方法的比较:get:一般用于信息获取使用url传递参数对所发送信息的数量也有限制,一般在2000个字符(默认的,安全的,一般用于查询);post:一般用于修改服务器上的资源,对所发送的信息的数量无限制(用于新建,修改等操作)

    (3)一个http响应一般由三部分组成:

    1 一个数字和文字组成的状态码,用来显示请求是成功还是失败。

    2 响应头,响应头也和请求头一样包含许多有用的信息,列如服务器类型,日期时间,内容类型和长度等。

    3 响应体,也就是响应正文。

    (4)http状态码由3位数字构成,其中首位数字定义了状态的类型:

    1xx:信息类,表示收到web浏览器请求,正在进一步的处理中,

    2xx:成功,表示用户请求被正确接受,理解和处理,列如:2000k

    3xx:重定向,表示请求没有成功,客户必须采取进一步的动作,

    4xx:各户端错误,表示各户端提交的请求有错误,列如:404 NOT Found,意味着请求中所引用的文档不存在。

    5xx:服务器错误,表示服务器不能完成对请求的处理,如:500

    (5)readystate 属性

    0:请求未初始化,open还没有调用

    1:服务器连接已建立,open已经调用了

    2:请求已接受,也就是接受到头信息了

    3:请求处理中,也就是接受到响应主体了

    4:请求已完成,且响应已就绪,也就是响应完成了。

    (6)JSON

    json:javascript对象表示法(Javascript object Notation)

    json是储存和交互文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成

    json是独立的语言,也就是说不管什么语言,都可以解析json,只需要按照json的规则来就行了。

    json与XML比较

    1 json的长度和xml格式比较起来很短小

    2 json 读写的速度更快

    3 json 可以使用javascript内建的方法直接进行解析,转换成javascript对象,非常方便

    json语法规则

    json数据的书写格式是:名称/值对,名称/值对组合中的名称写在前面(在花括号中),值对写在后面(同样在双引号中)中间用冒号隔开:比如“name”:“郭靖”

    json的值可以是下面这些类型

    数字(整数或浮点数),比如123,1.23

    字符串(在双引号中)

    逻辑值(true或false)

    数组(在括号中)

    对象(在花括号中)

    null

    用jquery.ajax([settings])数据形式

    type:类型,“post”或”get“,默认为”get“

    url:发送请求的地址

    data:是一个对象,连同请求送到服务器的数据

    data:预期服务器返回的数据类型。如果不指定,jquery将自动根据http包MIME信息来智能的判断,一般我们采用json格式,可以设置为”json“

    success:是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串

    error:是一个方法,请求失败时调用此函数,传入xmlhttprequest对象

    跨越

    1 解决跨越的第一个方法是代理(后台解决跨域的办法)

    2 处理跨域的的第二个方法是jsonp(get请求)json可用于解决主流浏览器的跨域数据访问的问题

    例子:在www.aaa.com页面中

    <script>

    function jsonp(json){

    alert(json["name"]);

    }

    </script>

    <script scr ="http://www.bbb.com/jsonp.js"></script>

    在 www.bbb.com页面中:

    jsonp({'name':'洪七','age':'24'});

    3 处理跨域方法三-XHR2

    Html5提供的XMLHTTPRequest level2 已经实现了跨域访问以及其它的一些新功能

    IE10一下的版本都不支持

    在服务器端做一些小小的改造即可:

    header('Access-control,Allow-origin:*');

    header('Access-control-Allow-Method.Post.Get);

     

  • 相关阅读:
    Saltstack
    搭建中小规模集群之rsync数据同步备份
    Python开发【第七篇】:面向对象二
    批量管理
    inotify
    Python开发【第六篇】:面向对象
    网络文件系统NFS
    Linux基础介绍【第九篇】
    Linux基础介绍【第八篇】
    Linux基础介绍【第七篇】
  • 原文地址:https://www.cnblogs.com/jiuyuetian/p/6386820.html
Copyright © 2020-2023  润新知