2015-05-12 3 views
8

Я пытаюсь вызвать этот URL в моем яваскрипте кода:Междоменного URL

http://api.addressify.com.au/address/autoComplete?api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5

Это мой Javascript код:

$.ajax({ 
     url: 'http://api.addressify.com.au/address/autoComplete', 
     type: 'GET', 
     crossDomain: true, // enable this 
     data: 'api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5', // or $('#myform').serializeArray() 
     success: function() { alert('PUT completed'); } 
    }); 

Я получаю сообщение об ошибке из URL Междоменного в консоли ,

Любая помощь?

+3

Для перекрестного домена запроса Ajax для работы, сервер должен поддерживать междоменный доступ либо с CORS, либо с JSONP. – jfriend00

+0

Возможный дубликат [XMLHttpRequest не может загрузить URL-адрес с помощью jQuery] (http://stackoverflow.com/questions/3828982/xmlhttprequest-cannot-load-an-url-with-jquery) – Nizam

ответ

7

Вы должны использовать JSONP сделать кросс сайт звонки запроса попробовать это:

$.ajax({ 
     url: 'http://api.addressify.com.au/address/autoComplete', 
     type: 'GET', 
     dataType:'jsonp', 
     jsonpCallback:'callback', 
     data: 'api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5&jsonp=callback', // or 
    success: function(json) { 
     console.dir(json); 
    }, 
    }); 

Вызов службы addressify с параметром «JSONP» сделает сервис обернуть ответ в функцию обратного вызова, который затем JQuery ajax использует для извлечения данных. Таким образом, параметр $ .ajax 'jsonpCallback' должен совпадать с параметром, который вы передаете службе 'JSONP' (в их documentation)

Fiddle здесь:

http://jsfiddle.net/luisvsilva/cL1c3t4j/1/

+0

Работал, Красивый, Спасибо, чувак! – Parkash

1

Просто добавьте данные в раздел URL вашего вызова ajax.

$.ajax({ 
    url: 'http://api.addressify.com.au/address/autoComplete?api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5', 
    type: 'GET', 
    crossDomain: true, // enable this 
    success: function() { alert('PUT completed'); } 
}); 

Если вы не можете жестко скопировать некоторые из этих данных, вы можете превратить объявление url в функцию.

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

+0

Я пробовал это. он не работает – Parkash

+0

@Parkash, что это за ошибка? Попробуйте решение Низам - оно выглядит более корректно, чем мое. – GreymondTheLong

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