PHP, jQuery Ajax и json возвращаются через перекрестный домен

У меня есть php-кодированная страница на одном сервере, которая возвращает результат json. php-файл: getInfoData.php, а возврат – ниже.

echo json_encode($v); 

Нет. Я могу использовать $ .getJSON (??) для чтения json и запускать все это на одном и том же уровне, но мне нужна PHP-страница, чтобы быть на другом, чем js-страница, вызывающая его.

Но тогда я получаю тогда, когда я делаю, я получаю проблему с перекрестным доменом.

Поэтому я изменил код, чтобы использовать следующее (jsonp):

  $.ajax({ url: 'FILE_LOCATION_ON_ANOTHER_SERVER', type: 'GET', crossDomain: true, dataType: 'jsonp', success: function() { console.log("Success"); }, error: function() {console.log('Failed!'); } }); 

но я не вижу ничего, что я могу получить только с моей консолью:

  http://www.THEURL.com/FOLDER/FILENAME.php?callback=jQuery171013088115444406867_1332256223342&_=1332256223343 

и сообщение не получилось !.

Что я делаю неправильно и как если бы я мог это исправить?

благодаря

JSONP на самом деле не JSON. Это немного «взломать». JSONP – это фактически файл JavaScript, который загружается и запускается.

На странице PHP вам должен быть передан параметр callback . Вам нужно «обернуть» ваш JSON. Он должен выглядеть так:

 func({json: data}) 

Итак, ваш PHP должен выглядеть так:

 echo $_GET['callback'] . '(' . json_encode($v) . ')'; 

Я использую это обычно, но, возможно, есть лучший способ

 <?php header('content-type: application/javascript; charset=utf-8'); $data = array(1, 2, 3, 4, 5, 6, 7, 8, 9); echo htmlspecialchars($_GET['callback']) . '('.json_encode($data).')'; 

так как я видел, что вы предоставили параметр обратного вызова, все должно быть в порядке