Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie wyników walidacji (W3C) poprzez JS
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
qiqqq
Witam serdecznie,
Mam następujący problem. Próbuję poprzez jsa pobrać nagłównki HTTP zwrócone przez W3C Validator. Początkowo próbowałem zrobić to w następujący sposób:

Kod
var encodeUrl = encodeURIComponent(value);

var xhr = $.ajax({
    type: "GET",
    url: "http://validator.w3.org/check?uri="+ encodeUrl +"&output=soap12",
    async: false,
    success: function(xml, output, status, xhr) {
        //console.log(xhr.getResponseHeader("X-W3C-Validator-Status"));
        console.log('success');
    },
    error: function(xml, xhr){
        console.log(xhr.getResponseHeader("X-W3C-Validator-Status"));
    }
});


Próbowałem różnych kombinacji POST/GET, zmianieałem &output=xml, async na true, itd. itd. Jednak cały czas ajax zwraca mi error. W firebugu widzę, że łączy się z validatrem i zwraca 200 OK (pobierana są również nagłówki HTTP), jednk nie wyrzucam mi tego co znajduje się w success, a tylko to co w error.

Na forum znalazłem coś takiego:
http://forum.php.pl/index.php?showtopic=115048

i próbowałem przerobić to na js:

Kod
var encodeUrl = encodeURIComponent(value);
var validatorUrl = "http://validator.w3.org/check?uri=" + encodeUrl;
                        
$.get(validatorUrl,
    function(data){
        console.log(data);
    }
)


i znów to samo, w konsoli widać, że łączy się z validatorem i zwraca 200 OK, natomiast nie drukuje niczego co znajduje się w funkcji.

Czy ktoś jest w stanie mi wytłumaczyć gdzie popełniam błąd?
Sephirus
Twój błąd polega na tym, że tak się nie da zrobić poprzez AJAX. Jeśli jesteś na domenie "a" to nie przeglądarka zablokuje odpowiedź AJAXową z adresu na domenie "b".

W skrócie AJAX może odwoływać się do tej samej domeny na jakiej się znajduje. Aby pobrać wyniki walidatora najlepiej użyj PHP. Odwołaj się AJAXem do swojego skryptu PHP, w którym to pobierzesz (np. poprzez file_get_contents()) adres walidatora i zwrócisz to co wypluł.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.