2016-07-12 4 views
0

Я пытаюсь использовать API поиска iTunes и apetch.fetch api - itunes поиск api error

Когда я пытаюсь выполнить следующее, я получаю ответ на консоль.

fetch('https://api.github.com/users/bootstrap').then(function(response) { 
    return response.json(); 
    }).then(function(j) { 
    console.log(j); 
    }); 

Однако, когда я пытаюсь

fetch('https://itunes.apple.com/search?term=jack+johnson',{mode: 'no-cors'}).then(function(response) { 
    return response.json(); 
    }).then(function(a) { 
    console.log(a); 
    }); 

Я получаю ошибку Uncaught (in promise) SyntaxError: Unexpected end of input(…)

Можно ли захватить данные API ITunes в этом случае?

Спасибо, Dave

+0

Возможный дубликат [Что такое непрозрачный запрос и для чего он служит?] (Http://stackoverflow.com/questions/36292537/what-is-an-opaque-request-and-what-it-serves -для) – Marco

ответ

0

От MDN (https://developer.mozilla.org/en-US/docs/Web/API/Request/mode):

нет-CORS - Предотвращает метод от того, ничего другого, кроме ГОЛОВЫ, GET или POST. Если какие-либо ServiceWorkers перехватывают эти запросы, они могут не добавлять или переопределять любые заголовки, за исключением этих. Кроме того, JavaScript может не иметь доступа к каким-либо свойствам полученного ответа. Это обеспечивает , что ServiceWorkers не влияют на семантику Web и предотвращают проблемы безопасности и конфиденциальности, возникающие из-за утечки данных через домены .

Вот почему вы получаете пустой ответ в JS и ошибку JSON при разборе пустой строки JSON.parse("").