1: Что такое аякс? Какова роль ajax?
异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术。 ajax用来与后台交互
2: Сколько шагов имеет собственный запрос js ajax? что
//创建 XMLHttpRequest 对象
var ajax = new XMLHttpRequest();
//规定请求的类型、URL 以及是否异步处理请求。
ajax.open('GET',url,true);
//发送信息至服务器时内容编码类型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//发送请求
ajax.send(null);
//接受服务器响应数据
ajax.onreadystatechange = function () {
if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) {
}
};
3: преобразование строки json устанавливает объект json, преобразование объекта json в строку json
//字符串转对象
JSON.parse(json)
eval('(' + jsonstr + ')')
// 对象转字符串
JSON.stringify(json)
4: Несколько методов запроса ajax? их плюсы и минусы?
Общий пост, получить, удалить. Копия, заголовок, ссылка и т. д. обычно не используются.
###代码上的区别
1:get通过url传递参数
2:post设置请求头 规定请求数据类型
###使用上的区别
1:post比get安全
(因为post参数在请求体中。get参数在url上面)
2:get传输速度比post快 根据传参决定的。
(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
3:post传输文件大理论没有限制 get传输文件小大概7-8k ie4k左右
4:get获取数据 post上传数据
(上传的数据比较多 而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)
5: Что вызывает перекрестный домен?
Ограничения политики одного и того же источника Различные источники могут привести к междоменному взаимодействию. Любая из следующих ситуаций отличается, это другой источник.
http://www.baidu.com/8080/index.html
http:// | разные протоколы |
---|---|
www | разные поддомены |
baidu.com | Основное доменное имя отличается |
8080 | разные номера портов |
www.baidu.com | другой IP-адрес и URL-адрес |
6: Какие междоменные решения?
1: jsonp может решить только получение междоменного доступа (наиболее часто запрашиваемый)
-
Принцип: динамически создавайте тег скрипта. Использование атрибута src тега script не ограничивается политикой того же источника. Поскольку все атрибуты src и атрибуты href не ограничены политикой одного и того же происхождения. Можно запросить содержимое данных стороннего сервера.
-
шаг:
- создать тег скрипта
- Атрибут src скрипта устанавливает адрес интерфейса
- Параметр интерфейса должен иметь имя пользовательской функции, иначе фон не может возвращать данные.
- Получите фоновые возвращаемые данные, указав имя функции
//去创建一个script标签
var script = document.createElement("script");
//script的src属性设置接口地址 并带一个callback回调函数名称
script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback";
//插入到页面
document.head.appendChild(script);
//通过定义函数名去接收后台返回数据
function jsonpCallback(data){
//注意 jsonp返回的数据是json对象可以直接使用
//ajax 取得数据是json字符串需要转换成json对象才可以使用。
}
2: CORS: совместное использование ресурсов между источниками
-
Принцип: после того, как сервер установит HTTP-заголовок ответа Access-Control-Allow-Origin, браузер разрешит междоменные запросы.
-
Ограничение: Браузер должен поддерживать HTML5 и может поддерживать POST, PUT и другие методы, совместимые с ie9 и выше.
需要后台设置
Access-Control-Allow-Origin: * //允许所有域名访问,或者
Access-Control-Allow-Origin: http://a.com //只允许所有域名访问
3: Установить документ.домен
-
Принцип: для страниц под одним и тем же основным доменным именем и разными поддоменами вы можете установить document.domain, чтобы они находились в одном домене.
-
Ограничение: документы одного домена обеспечивают взаимодействие между страницами и требуют загрузки страниц iframe.
// URL http://a.com/foo
var ifr = document.createElement('iframe');
ifr.src = 'http://b.a.com/bar';
ifr.onload = function(){
var ifrdoc = ifr.contentDocument || ifr.contentWindow.document;
ifrdoc.getElementsById("foo").innerHTML);
};
ifr.style.display = 'none';
document.body.appendChild(ifr);
4: Используйте Apache для переадресации (обратный прокси-сервер), чтобы сделать междоменный переход в один и тот же домен.
7: Каковы общие коды состояния HTTP?
1: Код состояния в начале 2
2xx (успех) Код состояния, указывающий, что запрос был успешно обработан
200 (成功) 服务器已成功处理了请求。 通常。
II: код состояния, начинающийся с 3
3xx (перенаправление) указывает, что для выполнения запроса требуются дальнейшие действия. Обычно эти коды состояния используются для перенаправления.
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
3: Код состояния в начале 4
4xx (ошибка запроса) Эти коды состояния указывают на то, что запрос мог быть выполнен неправильно, что не позволяет серверу обработать
1:400 (错误请求) 服务器不理解请求的语法。
2:403 (禁止) 服务器拒绝请求。
3:404 (未找到) 服务器找不到请求的网页。
Четыре: код состояния 5 в начале
5xx (Ошибка сервера) Эти коды состояния указывают на то, что на сервере произошла внутренняя ошибка при попытке обработать запрос. Эти ошибки могут быть ошибками самого сервера, а не ошибкой в запросе
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。