Если ваш основной сайт - localhost:80
, то есть localhost
, даже если ваш скрипт вызова имеет значение :8080
, он не будет работать.Он использует домен / порт HTML, а не внешние файлы JS.Причина, по которой callback=?
может работать, заключается в том, что он добавляет элемент script на страницу.Важно то, что JSON на сервере поддерживает обратный вызов.
Например, если бы это был PHP-скрипт, он должен был бы сделать что-то вроде этого:
<?php
$json = json_encode(array('key' => "value"));
echo isset($_GET['callback']) ? $_GET['callback'] . "($json);" : $json;
Так чтоПолученный результат выглядит следующим образом:
callback_function({"key" => "value"});
Наконец, поскольку вы используете JSONP (JSON с обратным вызовом), просто используйте $.getJSON
:
$.getJSON(file + '?callback=?', function (data) {
alert('It Works');
});