«ip» не разрешен Access-Control-Allow-Origin - PullRequest
1 голос
/ 21 января 2012

Я не знаю, как устранить эту проблему.

XMLHttpRequest не может загрузить http://gumball.wickedlysmart.com/?lastreporttime=1302212903099. Источник http://192.168.0.102 не разрешен Access-Control-Allow-Origin.

Я гуглил, и люди говорят, что я должен добавить 'Access-Control-Allow-Origin: *;'в заголовке

Как мне это сделать?Куда я это положу?на HTML-файл?или JS файл?

Вот мой код JS.Помогите пожалуйста.

window.onload = function() {

    var url = "http://gumball.wickedlysmart.com/?lastreporttime=1302212903099&callback=?";
    var request = new XMLHttpRequest();

    request.open("GET", url);
    request.onload = function() {
        if (request.status == 200) {
            updateSales(request.responseText);
        }
    };
    request.send(null);

    function updateSales(responseText) {
        var salesDiv = document.getElementById("sales");
        salesDiv.innerHTML = responseText;
    }

}

1 Ответ

2 голосов
/ 21 января 2012

Вы не добавляете заголовок Access-Control-Allow-Origin - они делают.

Это "Заголовок ответа" , поэтому сопровождающие gumball.wickedlysmart.com должны добавить его в свой ответ.

Хотя я очень сомневаюсь, что их убедят добавить IP-адрес только для локальной сети - 192.168.x.x.


Однако служба поддерживает JSONP, поэтому заголовок не должен быть обязательным. Это потому, что JSONP не Ajax и не использует XMLHttpRequest.

Вместо этого запросы JSONP выполняются путем добавления в документ новых <script> источников:

function requestJSONP(url) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;

    document.body.appendChild(script);
}

Также обратите внимание, что ? из callback=? - это просто помощь, предлагаемая некоторыми библиотеками (например, jQuery ). Вы должны указать фактическое глобальное имя функции в качестве значения callback, чтобы фактически получить ответ:

window.processResponse = function (data) {
    // ...
};

requestJSONP('http://gumball.wickedlysmart.com/?callback=processResponse');

Пример: http://jsfiddle.net/mnjxB/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...