Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie wyników walidacji (W3C) poprzez JS
qiqqq
post 28.12.2012, 10:13:59
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Sephirus
post 28.12.2012, 10:25:52
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ł.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 18:52