>웹 프론트엔드 >JS 튜토리얼 >Ajax 공통 면접 질문

Ajax 공통 면접 질문

coldplay.xixi
coldplay.xixi앞으로
2020-07-31 11:37:282803검색

Ajax 공통 면접 질문

1: 아약스란 무엇인가요? 아약스의 기능은 무엇입니까?

异步的javascript和xml  AJAX 是一种用于创建快速动态网页的技术。  ajax用来与后台交互

[주제추천]:2020 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 하위 도메인 이름이 다릅니다
du.com 메인도메인명이 다릅니다
8080 포트번호가 다릅니다
www.baidu.com IP주소와 홈페이지가 다릅니다

6: 뭔데요? 도메인 간 솔루션?

1: jsonp는 get cross-domain(가장 많이 묻는 질문)만 해결할 수 있습니다.

  • 원리: 스크립트 태그를 동적으로 생성합니다. script 태그의 src 속성 사용은 동일 원본 정책에 의해 제한되지 않습니다. 모든 src 속성과 href 속성은 동일한 원본 정책으로 제한되지 않기 때문입니다. 타사 서버 데이터 콘텐츠를 요청할 수 있습니다.
  • 단계:
  1. 스크립트 태그를 생성
  2. 스크립트의 src 속성을 설정하여 인터페이스 주소
  3. 인터페이스 매개변수를 설정합니다. 사용자 정의 함수 이름을 가져와야 합니다. 그렇지 않으면 백엔드가 데이터를 반환할 수 없습니다.
  4. 함수 이름을 정의하여 백그라운드 반환 데이터 수신
//去创建一个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: 도메인 간 리소스 공유

  • 원리: 서버가 Access-Control-Allow-Origin HTTP 응답 헤더를 설정한 후 브라우저는 허용합니다. 도메인 간 요청
  • 제한 사항: 브라우저는 HTML5를 지원해야 하며 POST, PUT 및 기타 방법을 지원할 수 있습니다. ie9 이상과 호환됩니다
需要后台设置
Access-Control-Allow-Origin: *              //允许所有域名访问,或者
Access-Control-Allow-Origin: http://a.com   //只允许所有域名访问

3: document.domain 설정

  • 원칙: 동일한 기본 도메인 이름과 다른 하위 도메인 이름의 페이지는 동일한 도메인에 있도록 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 상태 코드는 무엇입니까?

One: 2

2xx(성공)로 시작하는 상태 코드는 요청이 성공적으로 처리되었음을 나타냅니다.
200 (成功) 服务器已成功处理了请求。 通常。

Two: 3

3xx로 시작하는 상태 코드(리디렉션)는 요청을 완료하려면 추가 작업이 필요함을 나타냅니다. 요구. 일반적으로 이러한 상태 코드는 리디렉션에 사용됩니다.
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

Three: 4

4xx로 시작하는 상태 코드(요청 오류) 이러한 상태 코드는 요청에 오류가 있어 서버 처리를 방해할 수 있음을 나타냅니다.
1:400 (错误请求) 服务器不理解请求的语法。
 
2:403 (禁止) 服务器拒绝请求。

3:404 (未找到) 服务器找不到请求的网页。

Four: 5

5xx로 시작하는 상태 코드 (서버 오류) 이러한 상태 코드는 서버가 요청을 처리하는 동안 내부 오류가 발생했음을 나타냅니다. 이러한 오류는 요청 오류가 아니라 서버 자체의 오류일 수 있습니다
500 (服务器内部错误) 服务器遇到错误,无法完成请求。

501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

권장 관련 기사: ajax 비디오 튜토리얼

위 내용은 Ajax 공통 면접 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제