Po stronie serwera, wszystko trzeba skonfigurować to zasób internetowej (np strona), który akceptuje żądania GET
i zwraca dane stosując konwencję JSON-P, który jest:
callback({"data": "here"});
... gdzie nazwa funkcji ("wywołanie zwrotne" w tym przykładzie) jest zwykle pobierana z jednego z parametrów ciągu zapytania (zgodnie z konwencją, parametr "oddzwanianie"), a dane mają tekst JSON (choć technicznie może to być wszystko, co jest poprawne w obiekcie literowym JavaScript, konwencja z JSON-P polega na ograniczeniu się do tego, co jest poprawne w JSON). Tak na przykład, powiedzmy, że wniosek wyglądał następująco:
http://example.com/foo.php?callback=bar
To wywołuje stronę foo.php
(nie musi być PHP, może być dowolny dynamiczny system server-side), informując go, że funkcja, którą chcemy wywołać, to "bar". Nasza odpowiedź będzie:
bar({"data": "here"});
Po stronie klienta, trzeba dodać element script
do strony dynamicznie, a także dodawać funkcję wywołania zwrotnego, która będzie uzyskać wyzwolone przez odpowiedź JSON-P. Zwykle chcesz nadać tej funkcji jakąś przypadkową nazwę i usunąć ją, gdy skończysz.
Here's a complete example jako odpowiedź na inne pytanie tutaj na przepełnienie stosu. Być może będziesz musiał dostosować go nieco do wykorzystania w dodatku Firefox, ale koncepcje są takie same.
Dziękuję bardzo! Rozwiązanie CORS naprawiło mnie. –
Po prostu w dół bc ta odpowiedź zakłada php, a więc wolę T.J. Odpowiedź Crowdera poniżej. – Steven2163712
@ Steven2163712 jeśli czytasz poza tytułem, problem OP jest w rzeczywistości CORS, niezależnie od języka. Podczas gdy odpowiedź TJ jest bardziej ogólna (IMO php jest dość ogólny), nie rozwiązuje problemu PO. – soemarko