웹 프론트엔드 JS 튜토리얼 js에서 json을 호출하는 방법 요약

js에서 json을 호출하는 방법 요약

Feb 23, 2018 am 09:25 AM
javascript json 요약

이 글은 주로 js 호출 json 메소드의 요약에 대한 자세한 분석을 제공합니다. 도움이 필요한 친구들이 이를 참고하고 배울 수 있기를 바랍니다.

Ajax 기본

ajax: 데이터 새로 고침 없음, 서버의 정보 읽기

HTTP 요청 방법:

GET: 게시물 탐색 등의 데이터를 얻는 데 사용


ajax.judgeXmlHttpRequest('get', 'index.php', function(data){
  alert(data);  //这是服务器返回的数据
})
로그인 후 복사

POST: 사용자 등록과 같은 데이터를 업로드하는 데 사용됩니다


var dataJson = {
  name: 'ys',age: 123 
}
ajax.judgeXmlHttpRequest('post', 'index.php', function(data){
  alert(data);  //这是服务器返回的数据
},dataJson)
로그인 후 복사

GET과 POST의 차이점:

GET: URL을 통해 전달(URL 입력), 전달된 데이터는 URL, name=value&name=value

get 메소드는 용량이 작고 보안이 낮으며 캐시가 있습니다

POST: URL을 통과하지 않습니다

post는 용량이 크고 일반적으로 최대 2G이며 비교적 보안이 높으며 캐시가 없습니다.

기본 Ajax 작성

Ajax 실행 단계

Ajax 객체 만들기

IE6 이외의 브라우저:


var oAjax=new XMLHttpRequest();
로그인 후 복사

IE6 브라우저:


var oAjax=new ActiveXObject("Microsoft.XMLHTTP");
로그인 후 복사

서버에 연결


Ajax.open(方法,文件名,异步传输);
로그인 후 복사

캐싱을 방지하는 방법:


Ajax.open('GET','a.txt?t='+new Date().getTime(),true);
로그인 후 복사

동기화: js는 작업을 하나씩 수행해야 함을 의미합니다.

비동기: js는 여러 작업을 함께 수행해야 함을 의미합니다.

ajax는 동기 전송이 아닌 비동기 전송을 위한 것입니다

요청 보내기


Ajax.send();
로그인 후 복사

반환 값 받기

요청 상태 모니터링: onreadystatechange 이벤트: Ajax와 서버 사이에 통신이 있을 때 트리거됩니다. 주로 ReadyState 속성으로 종료 여부를 판단합니다. 성공하면 상태 속성으로 판단합니다.

readyState 속성: 요청 상태

0(초기화되지 않음) open 메서드가 아직 호출되지 않았습니다.

1(로드 중) 메소드가 호출되었고 요청이 전송되는 중

2 (로딩 완료) send() 메소드가 완료되었으며 해당 내용이 모두 수신되었습니다

3 (파싱 중) 수신된 응답 내용이 파싱 중입니다

4 (완료 ) 응답 콘텐츠 구문 분석이 완료되었으며 클라이언트에서 호출할 수 있습니다(완료가 반드시 성공을 의미하는 것은 아니며, 성공 또는 실패를 감지하려면 상태가 필요함)

상태 속성:

요청 결과, 성공(200)인지 실패인지 여부 (404): Ajax.status==200

반환 값 responseText:

서버에서 반환된 텍스트: Ajax .responseText (반환된 값은 문자열이며 때로는 다른 형식으로 추가 처리해야 함)


oAjax.onreadystatechange=function(){
  //oAjax.readyState: 表示浏览器和服务器之间进行到哪一步了
  if(oAjax.readyState==4){ //读取完成
    if(oAjax.status==200){ //读取的结果是成功
      alert('成功:'+oAjax.responseText);
    }
  }
}
로그인 후 복사

네이티브 Ajax를 함수로 캡슐화합니다. 작성된 최종 네이티브 Ajax는 다음과 같습니다.

GET 메서드 캡슐화 POST 메서드로 캡슐화된 함수는 다음과 같습니다.


function ajax(url,fnSuccess,fnFaild){
  //1.创建Ajax对象。js中,使用一个没有定义的变量会报错,使用一个没有定义的属性,是undefined。IE6下使用没有定义的XMLHttpRequest会报错,所以当做window的一个属性使用
  if (window.XMLHttpRequest) {
    var oAjax=new XMLHttpRequest();//非IE6
   }else{
    var oAjax=new ActiveXObject("Microsoft.XMLHTTP");//IE6
   }
  //2.连接到服务器
  oAjax.open('GET',url,true);
  //3.发送请求
  oAjax.send();
  //4.接收返回值
  oAjax.onreadystatechange=function(){
    //oAjax.readyState--浏览器和服务器之间进行到哪一步了
    if(oAjax.readyState==4){ //读取完成
      if(oAjax.status==200){ //读取的结果是成功
        fnSuccess(oAjax.responseText); //成功时执行的函数
      }else{
        if(fnFaild){  //判断是否传入失败是的函数,即用户是否关心失败时的结果
          fnFaild(oAjax.responseText); //对失败的原因做出处理
        }
      }
     }
   }
  }
로그인 후 복사

POST 메서드로 캡슐화된 함수는 다음과 같습니다.


function ajaxPost(url,id,fnSuccess,fnFaild){
  //1.创建Ajax对象
  if (window.XMLHttpRequest) {
    var xhr=new XMLHttpRequest();//非IE6
  }else{
    var xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE6
  }
  //2.连接到服务器
  xhr.open("POST",url,true);
  //设置头信息
  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  var form=document.getElementById(id);
  //3.发送请求,传递数据
  xhr.send(serialize(form));
  xhr.onreadystatechange=function(){
    if(xhr.readyState==4){
      if ((xhr.status>=200 && xhr.status<300) || xhr.status==304) {
        fnSuccess(xhr.responseText);
      }else{
        fnFaild(xhr.responseText);
      }
    }
  };
}
로그인 후 복사

문자 집합 인코딩: 웹 페이지와 요청 파일의 인코딩이 동일해야 하며, 둘 다 utf8

캐싱인 경우 차단 캐시(자주 변경되는 데이터 등은 캐시할 수 없습니다. 주로 사용됩니다. GET 메소드) 매개변수를 전달할 때 경로 뒤에 ?+'변수 데이터'를 추가하면 원본 데이터에 영향을 주지 않고 동적 데이터를 요청할 수 있습니다.


ajax(&#39;a.txt?t=&#39;+new Date().getTime(),function(str){
  alert(str);
},function(str){
  alert(str);
});
로그인 후 복사

ajax : json 파일과 같은

1 문자열이며, 반환된 배열/json 데이터는 평가 변환을 통해 읽을 수 있습니다


alert(str);
alert(typeof(str));
var arr=eval(str);
alert(typeof(arr));
alert(arr[1]);
alert(arr[1].c);
로그인 후 복사

2 DOM과 결합하여 반환된 콘텐츠를 표시하는 요소를 생성합니다.


oBtn.onclick=function(){
  ajax(&#39;data/arr3.txt?t=&#39;+new Date().getTime(),function(str){
    var arr=eval(str);
    for (var i = 0; i < arr.length; i++) {
      var oLi=document.createElement(&#39;li&#39;);
      oLi.innerHTML=&#39;用户名:<span>&#39;+arr[i].user+&#39;</span>密码:<span>&#39;+arr[i].pass+&#39;</span>&#39;;
      oUl.appendChild(oLi);
    }
  },function(str){
    alert(str);
  });
}
로그인 후 복사

데이터 유형-->반환된 데이터 유형은 다음과 같습니다. be xml (거의 제거됨), json (현재 일반적으로 사용됨)

최근에 get 메서드를 통해 json을 호출하기 위해 네이티브 js를 작성한 예를 살펴보겠습니다.


if(!isNaN(matchId)) {
  var xmlHttp = null;
  try {// Chrome, Firefox, Opera, Safari
    xmlHttp = new XMLHttpRequest();
  }catch (e) {
    try {// Internet Explorer IE 6.0+
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {// Internet Explorer IE 5.5+
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        alert("your browser not support ajax!");
      }
    }
  }
  window.onload = function () {
    xmlHttp.open("get",/api/clientMatch/commonMatchDiagram.json?matchId=" + matchId,true);
    xmlHttp.send();
    xmlHttp.onreadystatechange = doResult; //设置回调函数
  };
  function doResult() {
    var html=&#39;&#39;;
    if ((xmlHttp.readyState == 4)&&(xmlHttp.status == 200)) {//4代表执行完成,200代表执行成功
      var data = JSON.parse(xmlHttp.responseText);
      if(data.code == 200){
      //代码执行
      }
      document.getElementById(&#39;appMatch&#39;).innerHTML = html;
    }
  }
}
로그인 후 복사

관련 권장 사항:

예 json_jquery

PHP5.5를 호출하는 PHP 크로스 도메인 설치 후 json_encode를 호출할 수 없습니다. Solution

ajax를 사용하여 jquery_jquery에서 json 데이터를 호출하는 방법


위 내용은 js에서 json을 호출하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 시스템에서 system() 함수의 사용법을 요약합니다. Linux 시스템에서 system() 함수의 사용법을 요약합니다. Feb 23, 2024 pm 06:45 PM

Linux에서의 system() 함수 요약 Linux 시스템에서 system() 함수는 명령줄 명령을 실행하는 데 사용할 수 있는 매우 일반적으로 사용되는 함수입니다. 이 기사에서는 system() 함수를 자세히 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. system() 함수의 기본 사용법은 다음과 같습니다. intsystem(constchar*command) 여기서 명령 매개변수는 문자입니다.

MySQL5.7과 MySQL8.0의 차이점은 무엇입니까? MySQL5.7과 MySQL8.0의 차이점은 무엇입니까? Feb 19, 2024 am 11:21 AM

MySQL5.7과 MySQL8.0은 서로 다른 두 가지 MySQL 데이터베이스 버전입니다. 두 버전 사이에는 몇 가지 주요 차이점이 있습니다. 성능 개선: MySQL8.0은 MySQL5.7에 비해 성능이 일부 향상되었습니다. 여기에는 더 나은 쿼리 최적화 프로그램, 더 효율적인 쿼리 실행 계획 생성, 더 나은 인덱싱 알고리즘 및 병렬 쿼리 등이 포함됩니다. 이러한 개선 사항은 쿼리 성능과 전반적인 시스템 성능을 향상시킬 수 있습니다. JSON 지원: MySQL 8.0에는 JSON 데이터의 저장, 쿼리 및 인덱싱을 포함하여 JSON 데이터 유형에 대한 기본 지원이 도입되었습니다. 이를 통해 MySQL에서 JSON 데이터를 보다 편리하고 효율적으로 처리하고 조작할 수 있습니다. 트랜잭션 기능: MySQL8.0은 원자와 같은 몇 가지 새로운 트랜잭션 기능을 도입합니다.

PHP 배열을 JSON으로 변환하기 위한 성능 최적화 팁 PHP 배열을 JSON으로 변환하기 위한 성능 최적화 팁 May 04, 2024 pm 06:15 PM

PHP 배열을 JSON으로 변환하기 위한 성능 최적화 방법은 다음과 같습니다. JSON 확장 및 json_encode() 함수를 사용하여 문자 이스케이프를 방지하고 버퍼를 사용하여 JSON 인코딩 결과 캐싱을 고려합니다. JSON 인코딩 라이브러리.

Pandas 사용 튜토리얼: JSON 파일 읽기를 위한 빠른 시작 Pandas 사용 튜토리얼: JSON 파일 읽기를 위한 빠른 시작 Jan 13, 2024 am 10:15 AM

빠른 시작: JSON 파일을 읽는 Pandas 방법, 특정 코드 예제가 필요합니다. 소개: 데이터 분석 및 데이터 과학 분야에서 Pandas는 중요한 Python 라이브러리 중 하나입니다. 풍부한 기능과 유연한 데이터 구조를 제공하며, 다양한 데이터를 쉽게 처리하고 분석할 수 있습니다. 실제 애플리케이션에서는 JSON 파일을 읽어야 하는 상황에 자주 직면합니다. 이 기사에서는 Pandas를 사용하여 JSON 파일을 읽고 특정 코드 예제를 첨부하는 방법을 소개합니다. 1. 팬더 설치

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까? Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까? May 06, 2024 pm 10:09 PM

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 제어합니다. 직렬화: @JsonIgnore: 속성 무시 @JsonProperty: 이름 지정 @JsonGetter: get 메서드 사용 @JsonSetter: set 메서드 사용 역직렬화: @JsonIgnoreProperties: @JsonProperty 속성 무시: 이름 지정 @JsonCreator: 생성자 사용 @JsonDeserialize: 사용자 정의 논리

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

PHP에 대한 심층적인 이해: JSON 유니코드를 중국어로 변환하는 구현 방법 PHP에 대한 심층적인 이해: JSON 유니코드를 중국어로 변환하는 구현 방법 Mar 05, 2024 pm 02:48 PM

PHP에 대한 심층적인 이해: JSONUnicode를 중국어로 변환하는 구현 방법 개발 중에 JSON 데이터를 처리해야 하는 상황이 자주 발생하며, JSON의 유니코드 인코딩은 일부 시나리오, 특히 변환해야 할 때 몇 가지 문제를 일으킬 수 있습니다. 유니코드 인코딩을 한자로 변환하는 경우입니다. PHP에는 이러한 변환 프로세스를 달성하는 데 도움이 되는 몇 가지 방법이 아래에 소개되고 구체적인 코드 예제가 제공됩니다. 먼저 JSON의 Un을 먼저 이해해 봅시다.

PHP 배열을 JSON으로 변환하기 위한 빠른 팁 PHP 배열을 JSON으로 변환하기 위한 빠른 팁 May 03, 2024 pm 06:33 PM

PHP 배열은 json_encode() 함수를 통해 JSON 문자열로 변환할 수 있으며(예: $json=json_encode($array);), 반대로 json_decode() 함수를 사용하면 JSON에서 배열로 변환할 수 있습니다($array= json_decode($json);) . 다른 팁에는 심층 변환 방지, 사용자 정의 옵션 지정 및 타사 라이브러리 사용이 포함됩니다.

See all articles