2012-06-05 5 views
1

У меня есть внешний URL-адрес json.Доступ к JSON на внешнем сервере

http://kun6858.iptime.org:8080/apps/list/?app_mb_no=9

И этот JSON с JQuery $ .getJSON (..)

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<script> 
$.getJSON(
    "http://kun6858.iptime.org:8080/apps/list/?jsoncallback=?", 
    { 
     app_mb_no : 9 
    }, 
    function(data) { 
     console.log(data); 
    } 
); 
</script> 
</body> 
</html> 

Но я не могу получить доступ к JSON с использованием выше источника.

Я понятия не имею, как получить доступ к внешнему серверу json. Есть ли у моего источника проблемы? или JSON?


для справки, это снимок экрана ..

enter image description here

+0

Это был секрет Jquery AJAX .. http://stackoverflow.com/questions/7936610/json-uncaught-syntaxerror-unexpected-token –

ответ

0

Вы должны использовать JSONP для доступа междоменном. Поэтому вам необходимо изменить свой вызов AJAX.

хорошо для объяснений этого сценария здесь:

http://www.jquery4u.com/json/jsonp-examples/

+0

пытался с (функция ($) { вар URL = 'http://kun6858.iptime.org:8080/apps/list/'; $ .ajax ({ типа: 'GET', URL: URL, асинхронной: ложь, CONTENTTYPE: "применение/JSON" , dataType: 'jsonp', данные: { \t app_mb_no: 9 \t } }); }) (jQuery); это, но то же самое ... –

+0

Привет, Патрик, ваша поддержка сервера поддерживает jsonp? Как видно из примера, вам нужно обернуть свой ответ jsonp в функции jsoncallback. С уважением, Monsi –

0

Три точки:

  1. не app_mb_no нужно значение в вашем АЯКС вызова? например app_mb_no : 9
  2. Вы можете использовать .ajax эквивалент: $.ajax({ url: url, dataType: 'json', data: data, success: callback });
  3. Вы запустить свой код под веб-сервер? Вам нужно это сделать.
+0

Я попробовал это на своем собственном сервере после вашего ответа.но то же самое произошло .. и изменено app_mb_no: 9 –

+0

go for javascript console, имеет ли он что-то, что связано с перекрестным доменом? –

+0

Я использую хром, и он дает мне «Uncaught SyntaxError: Неожиданный токен»: –

0

Я не знаю точно, как это работает, но это решило мою проблему.

Добавление этого в ServletResponse

response.setHeader("Access-Control-Allow-Origin", "*"); 
    response.setContentType("Content-Type:application/json;charset=UTF-8"); 

И в Html

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<script> 
var url = "http://localhost:8080/apps/list/?app_mb_no=9"; 


if ($.browser.msie && window.XDomainRequest) { 
    // Use Microsoft XDR 
    var xdr = new XDomainRequest(); 
    xdr.open("get", url); 
    xdr.onload = function() { 
    var JSON = $.parseJSON(xdr.responseText); 
    if (JSON == null || typeof (JSON) == 'undefined') 
    { 
     JSON = $.parseJSON(data.firstChild.textContent); 
    } 
    processData(JSON); 
    }; 
    xdr.send(); 
} else { 
      $.ajax({ 
      type: 'GET', 
      url: url, 
      processData: true, 
      data: {}, 
      dataType: "json", 
      success: function (data) { processData(data); } 
      }); 
} 

function processData(data) { 
    console.log(data); 
} 
</script> 
</body> 
</html> 

Если кто-нибудь знает, что лучший способ научить меня, пожалуйста !! благодаря

+0

, проверенный в IE8, но не работал –

+0

Для себя, http://stackoverflow.com/questions/7936610/json-uncaught-syntaxerror-unexpected-token –

Смежные вопросы