2009-08-19 7 views

Odpowiedz

5

JSONP oznacza JSON z wyściółką i zapewnia sposób dla klienta, aby podać kod, który należy dodać do początku odpowiedzi JSON. Pozwala to na bezpośrednie wykonanie odpowiedzi JSONP w przeglądarce. Przykładem może być odpowiedzią JSONP:

processResults({value1: "Hello", value2: "World"}) 

Myślę, że głównym miejscem, które JSONP byłby przydatny jest w tworzeniu żądań między domenami za pomocą znacznika <script>. Myślę, że główną wadą jest to, że ponieważ JSONP jest bezpośrednio wykonywany, musiałbyś ufać, że zdalna witryna nie odeśle niczego złośliwego. Muszę jednak przyznać, że nie stosowałem tej techniki w praktyce.

Edytuj: Remote JSON - JSONP dostarcza więcej informacji o tym, dlaczego chcesz użyć tej techniki od faceta, który wydaje się, że ją wymyślił.

3
+0

Dzięki, to całkiem niezły artykuł. Zdałem sobie sprawę, że również szukałem dobrego tła, dlaczego jest to konieczne, czego artykuł tak naprawdę nie obejmuje, więc zmienię moje pytanie, aby je uwzględnić. –

+0

z artykułu "robiąc to, możesz mieć żądania JSON dla wielu domen". to sposób na obejście limitów xss – andersonbd1

3

Cytując this blog:

The purpose of JSONP is to overcome the boundaries of the infamous same-domain-policy which restricts XHR requests to the same domain meaning that you cannot make Ajax requests to other domains. There’s no need to worry about that with JSONP because it doesn’t even require Ajax to work; all it’s doing is using script tags and callbacks…