2010-09-23 21 views
8

Próbuję uzyskać JSON, który jest wysyłany z https bezpiecznym miejscu,JSONP przejmie JSON Z protokołu HTTPS z JQuery

Klient nie był nadzieją używać żadnych języków server-side (całość w JavaScript)

Przeczytałem, że muszę użyć JSONP w celu załadowania JSON z bezpiecznej witryny, przy użyciu funkcji .ajax z Jquery.

Moje pierwsze pytanie byłoby, jaki format muszę ustawić JSONP jako? Teraz mój kod wygląda tak:

html =new Object(); 
    html = $.ajax({ 
     url: "https://my-secure.net", 
     async: false, 
     dataType: 'jsonp' 
    }).responseText; 

//alert(html);  
    alert("myObject is " + html.toSource()); 
    console.log(html); 

Jednak nic nie jest ostrzeżone, ani nic nie jest rejestrowane w Firebug. Zasadniczo chcę móc manipulować danymi JSON. Widzę dane w odpowiedzi pod Firebug, ale jest błąd, który mówi "nieprawidłowa etykieta". Przeczytałem, że aby to naprawić, włącz go w funkcję eval z dodatkowymi parantezami, ale to nie działa.

http://b.lesseverything.com/2007/10/25/invalid-label-error-when-eval-json

ja też pojawia się błąd, który mówi moja $ .ajax żądania jest „nieokreślony”, ale widzę danych w odpowiedzi. Podejrzewam, że ma to coś wspólnego z tym, jak łapię początkowe dane. Każda rada byłaby doceniona. Dziękuję Ci!

Odpowiedz

5

można używać getJSON np

$.getJSON('ajax/test.json', function(data) { 
    $('.result').html('<p>' + data.foo + '</p>' 
    + '<p>' + data.baz[1] + '</p>'); 
}); 

sprawdzenie dokumentacji kompletny getJSON http://api.jquery.com/jQuery.getJSON/

EDIT

myliłem ... używając Jquery.ajax spowoduje problem cross-przeglądarki, ale nie z Jquery.getJSON

http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29

Oto przykład wzajemnej domenie uzyskać JSON

EDIT

Firefox ma problem z HTTPS, ponieważ wiem, że zostanie ona ustalona jeśli wyślesz prośbę tak

$.getJSON('ajax/test.json',{}, function(data) { 
    $('.result').html('<p>' + data.foo + '</p>' 
    + '<p>' + data.baz[1] + '</p>'); 
}); 

Źródło: AJAX https POST requests using jquery fail in Firefox

Nadzieja to pomaga

+0

Czy to działa z protokołem HTTPS? –

+0

tak, ale twój skrypt i żądany adres URL powinny znajdować się w tej samej domenie. – trrrrrrm

+0

A jeśli tak nie jest, to nie ma sposobu, aby to zrobić? Moja konsola i api są w dwóch oddzielnych domenach, –

Powiązane problemy