Вопрос по javascript, json – Получить JSON из другого (php) файла, используя чистый JavaScript?

1

Я новичок в JavaScript. У меня есть php-файл, в котором перечислены все файлы в каталоге. Я хочу вызвать этот файл и получить массив json, который он использует, только с использованием JavaScript. Я знаю, что jquery может это сделать ... но это единственное, что мне нужно сделать. Не стоит изучать jquery для него, и при этом я не хочу наполнять свою страницу библиотекой, которую я собираюсь использовать только для этой цели.

Посмотрите на AJAX - кстати, вы используете google apis для всех видов библиотек javascript: многие сайты используют их, так что jquery lib, вероятно, уже будет кэшироваться браузером, поэтому без дополнительной загрузки - я действительно рекомендую использовать один из рамки там scibuff
Я бы сказал, что все еще стоит использовать jQuery. Это не просто более короткий код, который вы получаете, но и более стабильный код. Если вы размещаете файл jquery.min.js на своем собственном сервере или CDN, время, необходимое для его загрузки, незначительно. Hubro

Ваш Ответ

1   ответ
2

просто используйте jquery, поскольку работа со всеми различными браузерами для AJAX - это боль, и я уверен, что в долгосрочной перспективе вы будете использовать его и для других целей.

Если вы действительно хотите это сделать, вот пример нативного js-запроса:

function ajaxRequest(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
}

ты бы использовал это так:

var mygetrequest=new ajaxRequest()
mygetrequest.onreadystatechange=function(){
 if (mygetrequest.readyState==4){
  if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
   var jsondata=eval("("+mygetrequest.responseText+")") //retrieve result as an JavaScript object
   var rssentries=jsondata.items
  }
  else{
   alert("An error has occured making the request")
  }
 }
}

mygetrequest.open("GET", "mypage.php", true)
mygetrequest.send(null)

Похожие вопросы