У меня есть два сайта, сайт A просто HTML и Javascript, а сайт B имеет php. Мне нужно получить переменные с сайта B на сайте A.

EX :

Сайт А похож

<html>
<head>
  <script>
  //this script has to get the values from siteB
  </script>
</head>
<body>
  <div><!-- here i will do something with the data of site B --></div>
</body>
</html>

Сайт b похож на:

<?php
  var1= "something";
  var2= "somethingElse";
?>

Я думал использовать JSON или Ajax, но я не понимаю, как именно.

-2
leojg 31 Янв 2013 в 18:24

3 ответа

Лучший ответ
$(document).ready(function() {
  $.ajax({
   type: "GET",
   url: "filename.html",
   dataType: "json",
   success: function(data) {
        // data will contain var1 and var2
   },
   error: function(data) {
        alert("Problem - perhaps malformed JSON?");
   }
  });
});

И измените ваш PHP-файл на что-то вроде:

{
   "var1" : "something",
   "var2" : "somethingElse"
}

Подтверждено на работу. Убедитесь, что ваш файл представляет собой правильно сформированный JSON, иначе «успех» не сработает.

Примечание. Я имею в виду использование JQuery здесь. Ваш HTML-файл должен включать:

<script type="txt/javascript" src="jquery-1.8b1.js"></script>
0
Emanuele Ciriachi 31 Янв 2013 в 14:53

По соображениям безопасности Javascript не может использовать межсайтовый сайт ajax. Единственный способ добиться этого - иметь только один php-файл на сайте A, который можно перенаправить.

<?php echo file_get_contents($_GET["url"]); ?>

И JavaScript может вызывать URL:

/redir.php?url=http://siteb.com/valuetoget.php

Я не знаю, как сделать это без php на вызывающем веб-сайте.

-1
Bob 31 Янв 2013 в 14:33

Файл Б

<?php

$array[var1] = 'Something';
$array[var2] = 'else';

echo json_encode( $array );

Файл A (jQuery)

$.getJSON( $( 'file.php', function( data ) {

    $( 'div' ).html( data.var1 + ' ' + data.var2 );

}

Отредактировано - как уже упоминалось, не может сделать это кросс-домен без каких-либо других мер.

0
rlatief 31 Янв 2013 в 14:39