2015-05-20 4 views
0

У меня возникла следующая проблема: я пытаюсь создать небольшое приложение для поиска в наборе данных Odata из KVK (голландской торговой палаты) для извлечения данных на основе номеров файлов, почтовых индексов или торговых наименований.JQuery .ajax получить запрос с Odata

Мой Аякса код выглядит следующим образом:

 $.ajax({ 
     url: urls, 
     error: function(){console.log('FAILED!')}, 
     headers: 
     { 
      "Content-Type":"application/json", 
      "ovio-api-key":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
     }, 
     dataType: 'jsonp', 
     complete: function(data) { 
      console.log(data); 
     } 
    }); 

URL, хотел бы так:

https://overheid.io/api/kvk?&filters[postcode]=3553BA&callback=jQuery110208921047365292907_1432134770039&_=1432134770040

ошибка я получаю:

enter image description here

В часть я не понимаю, wh ан Пытаюсь тот же URL в клиенте веб отдыха, такие как передовые клиента отдыха Хрома результат именно то, что я хочу:

enter image description here

+0

Ответ получен неверный формат. Вам понадобится JSONP, а не JSON, чтобы использовать его с javascript в кросс-домене браузера. Единственный вариант - использовать api таким образом, чтобы он возвращал JSONP (если это вообще возможно) или не отправлял запрос в браузере клиента. –

+0

К сожалению, для этого задания я должен сделать это явно на стороне клиента. Когда я изменяю тип данных из jsonp в json, я сталкиваюсь с вопросом, что заголовок «Нет» Access-Control-Allow-Origin «присутствует» на запрошенном ресурсе. Поэтому исходный «null» не допускается ». Есть ли какая-нибудь работа вокруг этой проблемы? –

+0

Просто исправил его. Благодаря вашему ответу я внимательно посмотрел и увидел, что в запросе ajax отсутствует тип GET, добавлено это и отлично работает! –

ответ

0

Fixed, изменив код:

   $.ajax({ 
     type: 'GET', 
     url: urls, 
     error: function(){console.log('Gefaald!')}, 
     headers: 
     { 
      "Content-Type":"application/json", 
      "ovio-api-key":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
     }, 
     dataType: 'json', 
     complete: function(data) { 
      console.log(data); 
     } 
    }); 

просто нужно было добавить тип «GET».

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