2015-12-16 10 views
2

Я пытаюсь извлечь данные с помощью небольшого скрипта, который, как мне кажется, работает с любым другим URL-адресом, который создает данные json, однако, когда я использую его с URL-адресом, который заканчивается. json, я просто получу синтаксическую ошибку.Извлечение данных из .json url вызывает ошибку с JQuery

// ошибка

Uncaught SyntaxError: Unexpected token : http://frontier.ffxiv.com/worldStatus/gate_status.json?callback=jQuery21309476937903091311_1450254419566&q=select+title%2Cabstract%2Curl+from+search.news+where+query%3D%22cat%22&format=json&_=1450254419567 

// код ниже

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

<script> 
// Using YQL and JSONP 
$.ajax({ 
    url: "http://frontier.ffxiv.com/worldStatus/gate_status.json", 

    // The name of the callback parameter, as specified by the YQL service 
    jsonp: "callback", 

    // Tell jQuery we're expecting JSONP 
    dataType: "jsonp", 

    // Tell YQL what we want and that we want JSON 
    data: { 
     q: "select title,abstract,url from search.news where query=\"cat\"", 
     format: "json" 
    }, 

    // Work with the response 
    success: function(response) { 
     console.log(response); // server response 
    } 
}); 
</script> 
+2

Какая ошибка на консоли? – gurvinder372

+1

Я добавил ошибку в описание, извините. – ssj3goku878

+1

Использовать datatype json вместо jsonp – Roshan

ответ

5

URL, вы делаете запрос Аякса не доставляет JSONP, только регулярные JSON.

Вы получаете ошибку синтаксического анализа, так как результат что-то вроде

{"status":0} 

в то время как JQuery ожидает что-то вроде

callback({"status":0}) 

К сожалению, это не выглядит как CORS поддерживается либо, так что данные этот URL-адрес не может быть получен от клиентов, в связи с политикой того же происхождения.

+0

любые идеи о том, что можно сделать для поддержки CORS? – ssj3goku878

+1

Конечно, если вы управляете сервером на 'ffxiv.com', вы добавляете соответствующие заголовки' Access'. Если вы не контролируете сервер на 'ffxiv.com', вы ничего не можете сделать, вам придется написать скрипт serveride для получения данных, а затем использовать ajax для запуска скрипта serveride на вашем собственном сервере. – adeneo

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