로컬 Ajax 요청이 PHP 서버와 같은 매개변수를 기반으로 해당 데이터를 반환할 수 있나요?
이제 웹페이지가 ajax 요청을 통해 PHP로 데이터를 얻을 수 있고 동일한 주소를 통해 다른 데이터 매개변수를 전달하여 다른 데이터를 얻을 수 있다는 것을 알고 있지만 로컬 json 파일을 얻으면 동일한 효과를 얻을 수 있습니까?
로컬 Ajax 요청이 PHP 서버와 같은 매개변수를 기반으로 해당 데이터를 반환할 수 있나요?
이제 웹페이지가 ajax 요청을 통해 PHP로 데이터를 얻을 수 있고 동일한 주소를 통해 다른 데이터 매개변수를 전달하여 다른 데이터를 얻을 수 있다는 것을 알고 있지만 로컬 json 파일을 얻으면 동일한 효과를 얻을 수 있습니까?
아니요. 리소스는 다른 URL을 기반으로 로컬에서만 구별할 수 있습니다.
서버에서 처리해야 하며 로컬 환경 없이는 구현할 수 없는 다양한 데이터를 반환합니다. 실제로 node를 사용해 간단한 환경을 구성해 볼 수도 있습니다
문제에 대한 설명이 충분히 명확하지 않습니다. xhr.open('post' , url , true)
여기 url
는 php/test.php
와 같은 서버 스크립트가 아니지만 test.json
은 다음과 같습니다. ?
PHP 등의 서버 스크립트를 통해 데이터를 예약하지 않는 경우 파일 내용을 직접 요청할 수 있습니다.
예:
다음은 세 개의 json 파일입니다. test.json , test1.json ,test2.json
<code>js: var path = 'test.json'; // 只要更换:test1.json || test2.json 就可以切换成不同的内容 xhr.open('post' , path , true); // xhr.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded'); xhr.send(); xhr.onreadystatechange = function(){ if (this.readyState === 4 && this.status === 200) { console.log(this.responseText); // 可以查看到 test.json 中的数据 } }</code>
php로 전환해도 효과는 동일합니다.
<code>js: var sendData = 'require=test'; // 只要更换参数: require test1 || require = test2 就可切换不同内容 xhr.open('post' , 'test.php', true); xhr.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded'); xhr.send(sendData); xhr.onreadystatechange = function(){ if (this.readyState === 4 && this.status === 200) { console.log(this.responseText); // 可以查看到 test.json 中的数据 } } test.php: $require = $_POST['require']; switch ($require) { case 'test': require 'test.json'; exit; case 'test1': require 'test1.json'; exit; ..... }</code>
요약하자면, 개인적으로 php에 처리 기능이 추가된 것 같아서, 처리되지 않은 원시 텍스트 데이터를 직접 요청하기보다는 xhr에서 관련 매개변수를 php로 보내서 처리한 후 다시 피드백하는 것이 좋습니다