Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX miedzy domenami - co zrobić z jquery Objectem
Forum PHP.pl > Forum > XML, AJAX > AJAX
Sadamowski
Witam,

jest mały problem z czyms co wydaje się jasne ze względu na bezpieczenstwo a z drugiej strony musi byc jakies obejście:

chciałem zmałpowac pole wyszukiwarki z inteligentnym podpowiadaniem z jednej stronki. Podglądnąłem firebugiem jak wygląda request i po wrzuceniu go w przeglądarke dostaje coś takiego:

  1. jQuery18303185707158409059_1370954922211({'data': {'QueryTerm': 'cl', 'Language': 'en', 'SuggestionItems': {0: {'Category': '', 'Weight': '99', 'Suggestion': 'cloud'}, 1: {'Category': '', 'Weight': '35', 'Suggestion': 'cloud security'}, 2: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud development'}, 3: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud application delivery'}, 4: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud service automation'}, 5: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud management'}, 6: {'Category': '', 'Weight': '20', 'Suggestion': 'client automation'}, 7: {'Category': '', 'Weight': '18', 'Suggestion': 'clip'}, 8: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process'}, 9: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process (clip)'}}}})


no dobra... to teraz robie z tego zapytanie ajaxowe:

  1. $.ajax({
  2. type: 'GET',
  3. url: 'tu ten adresik/search',
  4. cache: false,
  5. dataType : 'script',
  6. data: {cb: 'jQuery18303185707158409059_1370954922211', q: 'cl', lang: 'en', _ : timest},
  7. success: function(html){
  8. alert(html);
  9. },
  10. error: function(data, status){
  11. alert('error: -> ' + status);
  12. }
  13. });
  14. });

Oczywiście jesli zmieniam dataType na json (bez sensu) albo text to ląduje w błędzie. Sprawa wydaje sie byc dosyć jasna ze względu na XRFS. z drugiej strony komus tam działa a ja nie moge podglądnąć źródeł ... bo nie.. i już. Jakis pomysł jak dobrać sie do danych. Chetnie podrzuce inne szczegóły sprawy jak bedzie trzeba.
Pozdro

buliq
Chodziło ci o XSRF(CSRF)?
Poczytaj o Same origin policy

Poza tym te ograniczenia dotyczą POST'a, ty wysyłasz GET, powinieneś pobrać poprawne wyniki chyba że autor strony z której kopiujesz zabezpieczył się (aby np odpowiedzi dostawały tylko zapytania z jego domeny)
Sprawdź w Dev HTTP Client (dodatek do Chrome) czy po wysłaniu requesta dostaniesz odpowiedź
Sadamowski
hmmm ale gdyby sie zabezpieczyl to wlkepując pełny adres z zapytaniem GET nie powiniennem dostac nic.

tu tez Firebugiem dostaje response:
jQuery18303185707158409059_1370954922211({'data': {'QueryTerm': 'cl', 'Language': 'en', 'SuggestionItems': {0: {'Category': '', 'Weight': '99', 'Suggestion': 'cloud'}, 1: {'Category': '', 'Weight': '35', 'Suggestion': 'cloud security'}, 2: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud development'}, 3: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud application delivery'}, 4: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud service automation'}, 5: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud management'}, 6: {'Category': '', 'Weight': '20', 'Suggestion': 'client automation'}, 7: {'Category': '', 'Weight': '18', 'Suggestion': 'clip'}, 8: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process'}, 9: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process (clip)'}}}})

wiec powinno być ok. Pytanie teraz jak dobrać sie do tych danych. Evalem to polecieć... chodzi przedewszystkim zeby dobrac sie do pola Suggestion tego obiektu.
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-2024 Invision Power Services, Inc.