Ошибка запроса MooTools

Так что у меня есть небольшая проблема. Когда я прошу MooTools отправить запрос, он каждый раз возвращается как неудачный. Я тоже не могу диагностировать проблему, потому что, если я попытаюсь получить информацию о возвращенном заголовке, консоль просто выдаст мне "Refused to get unsafe header 'Status'" сообщение. Единственное, о чем я могу думать, это то, что сервер не позволяет мне получить доступ к внешним ресурсам, но, возможно, я просто неправильно закодировал его.

Вот код запроса:

var finfo = current.textFontData();

var url = 'http://antiradiant.com/clients/TMW/rbwizard/mailer.php?s='+current.size+'&b='+current.box+'&l='+current.lidWood+'&c='+current.cartID+'&f='+finfo.font+'&l1='+finfo.line1+'&l2='+finfo.line2;
console.log(url);

var req = new Request({
    url: url,
    onSuccess: function() {
        console.log('success');
        //atc2.send();
    },
    onFailure: function() {
        console.log('failure');
        console.log(this.getHeader('Status'));
        //atc2.send();
    },
    onException: function(headerName, value) {
        console.log('exception');
        console.log(headerName+': '+value);
    }
});

req.send();

Этот код получен из ресурса rb_wizard.js (строки 81-103) на http://tylermorriswoodworking.myshopify.com/pages/recipe-box-wizard?b=maple&l=cherry&s=3x5&c=42042892


person Tyler Johnson    schedule 03.07.2010    source источник


Ответы (3)


В Mootools есть класс Request.JSONP, который поможет решить вашу междоменную проблему. Его подкласс класса Request, поэтому ваши методы должны работать одинаково. Я считаю, что вам нужно вызывать .post() или .get() в конце вместо отправки, но это все, что должно измениться. Я не уверен, какую версию вы используете, но вот ссылка на документацию Запрос Mootools.JSONP

person iangraham    schedule 03.07.2010

Сообщение об ошибке "Refused to get unsafe header 'Status'" выдается браузерами на основе WebKit (Safari, Chrome и т. д.), когда вы нарушаете модель междоменной безопасности.

Поэтому вполне вероятно, что вставленный вами код находится в домене, отличном от antiradiant.com, и, следовательно, ему не разрешено (браузером) запрашивать сайты на antiradiant.com.

person tomit    schedule 03.07.2010

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

person Tyler Johnson    schedule 05.07.2010