проблемы с getJSON - PullRequest
       2

проблемы с getJSON

0 голосов
/ 10 февраля 2011

У меня есть следующая информация в файле:

{"Morans Crossing":"Morans Crossing, NSW (2550)","Morangarell":"Morangarell, NSW (2666)"}

Имя файла, например, www.site.com/script.php

Я звоню с subdomain.site.com/script.js

Я использую следующий JS:

function lookup(inputString) {
if(inputString.length == 0) {
    // Hide the suggestion box.
    $('#suggestions').hide();
} else {
$.getJSON("http://www.site.com/script.php",{queryString:inputString},function(data) {
      if(data.length > 0){
         var reply = "";
        $.each(data, function(key,val){
            reply += "<li onClick=\"fill('"+key+"');\">"+val+"</li>";
        });
        $('#suggestions').show();
        $('#autoSuggestionsList').html(reply);
     }
});
}
}

JS вызывает информацию, и с помощью firebug я могу видеть параметры такими, какими они должны быть в script.php, хотя ответ и html пустые.

Любые предложения, чтобы получить эту работу от subdomain.site.com?

Спасибо.

1 Ответ

0 голосов
/ 10 февраля 2011

Это невозможно из-за политики Same-Origin . Это концепция безопасности, которая разрешает запрос только адресатам с тем же хостом, что и источник. Существует обходной путь под названием JSONP. Здесь клиент создает новый тег сценария для включения кода JavaScript с внешнего хоста, обычно вы передаете параметр callback, чтобы ваш код вызывался. Сервер должен поддерживать JSONP.


Работа с Flickr

$.ajax({
    type: "GET",
    url: "http://www.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=?",
    dataType: "jsonp",
    success: function(json) {
        // do stuff
    }
});

Обратите внимание на &jsoncallback=? в конце URL. Это обратный вызов JSONP, о котором я говорил. ? сигнализирует jQuery, что он может создать свой собственный уникальный идентификатор функции, который он сопоставляет с вашей success функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...