Witam. Zajmuję się wprowadzaniem danych na sklep internetowy. jeden z producentów posiada konfigurator swoich produktów na stronie. Chciałbym wyświetlić tylko jedną sekcję z ich strony u siebie w sklepie. Próbowałem tych sposobów:
$( "#result" ).load( "ajax/test.html #container" );
$("a").on("click", function() {
$.get('http://www.ton.eu/pl/produkty/detail/krzeslo-leaf').then(function(responseData) {
var $responseData = $(responseData.html);
var div = $responseData.find('#product-configuration').html();
if (div.length > 0) {
$('.new-projects').append(div);
}
});
});
oraz ładowania strony przez iframe o określonych koordynatach, jednak bezskutecznie
Nie działa ponieważ szukając po ‘#product-configuration’ szukasz id o nazwie ‘product-configuration’ a takiego nie masz, masz klase. więc musisz zamiast ‘#’ użyć ‘.’.
Nie mam teraz możliwości dokładnie przyjrzeć się skryptowi ale masz masę błędów. Nie ma takiego propertisa jak html dla obiektów dom w czystym js. Użycie funkcji get nie jest raczej zgodne z dokumentacją jq. Chyba że używasz jakiejś starej wersji jq.
Wrócę za jakąś godzinkę to jak będę miał chwilę zerknę do tego na spokojnie.
@OP
Jak dla mnie to może chodzić o to, że twój sklep i ten drugi mają różne domeny. Nie wykonasz wtedy AJAX, bo się nie da pomiędzy różnymi domenami (kwestia bezpieczeństwa, szukaj hasła CORS). Możesz to obejść tworząc proxy. Tworzysz u siebie lokalnie serwis REST, który pod spodem z poziomu kodu serwera połączy się do tej strony i pobierze dane, a następnie zwróci je do JS.
Dokładnie tak jak kostek napisał, nie da się zrobić ajaxowego zapytania do innej domeny, z tego co pamiętam chyba da się zrobić tylko jsonowe zapytanie. Musisz użyć własnego proxy.