2013-12-07 3 views
25

У меня проблемы с запросом ajax. Я получаю ошибкуCORS jQuery AJAX request

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Так что я попытался было это JQuery запрос Ajax:

var request = $.ajax({ 
    type: 'GET', 
    url: url, 
    dataType: "json", 
    xhrFields: { 
     withCredentials: true 
    }}); 
request.done(function(data){ 
    console.log(data); 
});  

Но она до сих пор не работает. Я все еще получаю ошибку.

Как это исправить?

+0

ли API служить 'Jsonp'? – charlietfl

+0

Я должен извлечь из этого '{" ticker ": {" high ": 0.00061," low ": 0.00045," avg ": 0.00053," vol ": 2284.80958," vol_cur ": 4421342.40061," last ": 0.00051 , «купить»: 0.00052, «продать»: 0.00051, «обновлено»: 1386427668, «server_time»: 1386427668}} ' – user6827

+0

это проблема с перекрестным доменом ... google' Access-Control-Allow-Origin' и ' такой же политика происхождения. Если API не обслуживает 'jsonp', необходимо будет использовать прокси-сервер для получения данных. – charlietfl

ответ

50

Это легко, вы должны сначала настроить заголовок сервера HTTP. Проблема заключается не в вашем JavaScript-интерфейсе. Вы должны вернуть этот заголовок:

Access-Control-Allow-Origin:* 

или

Access-Control-Allow-Origin:your domain 

В Apache config files, код выглядит так:

Header set Access-Control-Allow-Origin "*" 

В nodejs, код выглядит так:

res.setHeader('Access-Control-Allow-Origin','*'); 
+0

Отличный ответ! +1 –

+2

спасибо !! особенно для кода узла js, он отлично работает. Есть ли способ установить заголовок по умолчанию вместо этого, чтобы установить его в каждом обработчике post/get? – angrymadcat

+1

См. Http://stackoverflow.com/questions/7067966/how-to-allow-cors-in-express-node-js –