Добавление дополнительного запроса к обратному вызову JSON - PullRequest
1 голос
/ 04 февраля 2011

Моя проблема

Я пытаюсь загрузить закодированные в JSON данные с удаленного сайта, используя jQuery, однако, когда jQuery пытается вызвать этот URL, он добавляет правильную функцию в callback =? так что это что-то вроде callback = jsonp1256856769, но оно также добавляет _ = 1256856769 к URL. Таким образом, URL в конечном итоге выглядит как http://www.example.com/link/to/file.php?format=json&lang=en&callback=jsonp1256856769&_=1256856769

Теперь проблема в том, что используемый мной файл, который вызывает его, не может интерпретировать _ = 1234234, и я не могу его изменить, поэтому мне нужно исправить проблемы jQuery

Мой вопрос

Как я могу заставить jQuery не добавлять этот _ = к URL, который он вызывает

Что я сделал, чтобы попытаться выяснить мою проблему

  • Удалены все остальные библиотеки javascript со страницы
  • Пробовал несколько разных версий jQuery

Мой код

function getData(){
    url = "http://www.example.com/link/to/file.php";
    url += "?format=json&lang=en";
    $.getJSON(url+"&callback=?",function(data){formatData(data);});
}

* Выше приведен фрагмент JavaScript, который я сейчас использую

* Обратите внимание, что домен, который я использую, не example.com

1 Ответ

3 голосов
/ 04 февраля 2011

ОБНОВЛЕНИЕ: добавлен код

Часть _= есть, потому что запрос JSONP по умолчанию cache: false. Вы можете установить cache: true, что позволит удалить часть _=, но браузер будет кешировать запросы.

function getData() {
    url = "http://www.example.com/link/to/file.php";
    url += "?format=json&lang=en";
    $.ajax({
        'url': url,
        'type': 'GET',
        'dataType': 'jsonp', // this adds &callback=? by design
        'cache': true,
        'success': function(data) { formatData(data); }
    });
}
...