2013-07-15 2 views
0

Я хочу вызвать службу отдыха в другом домене с помощью JQuery ajax request.Не удалось получить ответ jsonp с помощью jquery ajax

Мой фрагмент кода: ad1, city, sp, pc, cn будет получен getElementbyID.

url='http://admin:[email protected]*******:***/rest/arun_code/results.json'+'?Data.AddressLine1='+ad1+'&Data.City='+city+'&Data.StateProvince='+sp+'&Data.PostalCode='+pc+'&Data.Country='+cn; 
    $.ajax({ 
     type: "GET", 
     url: url, 
     crossDomain: true, 
     async: false, 
     dataType: "jsonp", 
     contentType: "application/json", 
     jsonpCallback: 'jsonCallback', 
     success: function (data) { 
      alert(data.success); 
      alert(resultTemp.Output); 

     } 

    }); 

    jsonCallback = function(resultTemp){ 
     alert("In callback function"); 
     alert(resultTemp); 
    }; 

В моем веб-браузере консоли я получаю это исключение:

Uncaught SyntaxError: Unexpected token : at results.json :1 

с помощью инструментов разработчика Chrome я могу прочитать ответ, что это прекрасно:

{"Output":[{"Latitude":"43.643286156655485","Longitude":"-79.37559537260091"}]} 

Я не получение любых предупреждений с ответом, я хочу получить выход в качестве оповещения и доступного.

мой серверный выход - json, и я должен использовать jsonp для запроса перекрестного домена, как получить доступ на выходе ???? , пожалуйста, помогите мне.

Спасибо

+1

Вы являетесь провайдером сервиса REST? –

+0

Может использовать CURL для PHP, чтобы захватить json на ваш сервер, а затем проанализировать с помощью jquery. – chris

+0

Служба REST находится на другом сервере. Оба являются разными доменами. – Arun

ответ

3

Ваша проблема заключается в том, что ответ не JSONP. В Википедии есть очень хорошее объяснение о том, как работает JSONP: http://en.wikipedia.org/wiki/JSONP

т.е.

{ 
    "Name": "Foo", 
    "Id": 1234, 
    "Rank": 7 
} 

становится

jsonCallback({"Name": "Foo", "Id": 1234, "Rank": 7});

Вы не можете просто сделать нормальный запрос AJAX на существующий сервер и ожидать, что он будет соответствующим образом реагировать. Вам необходимо настроить сервер для ответа в соответствующем формате JSONp.

+0

Спасибо за ур ответ, Что мне теперь нужно сделать, чтобы получить ответ? – Arun

+0

Если запрос должен быть междоменным, вам нужно либо изменить серверную сторону, чтобы вернуть JSONp (это полностью зависит от настройки сервера), либо разместить ваш собственный сервер между прокси-сервером – CodingIntrigue

+0

Извините, я не могу изменить выходной формат моего сервера. Он будет давать только два типа: xml или json. Любая другая идея ??? – Arun

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