| Autor | Zpráva | ||
|---|---|---|---|
| Taps Profil |
#1 · Zasláno: 26. 11. 2021, 06:03:02
Zdravim, pomoci ajaxu a jsonp bych chtel nacist obsah stranky z jineho serveru, ale skript mi zobrazuje syntax error. Mohl by mi prosim nekdo poradit, jak problem vyresit. Dekuji
Kód:
$(document).ready(function() {
$('a').click(function(){
var adresa = $(this).attr('url');
$.ajax({
url: adresa+'?callback=?',
dataType: "jsonp",
jsonpCallback: 'myJSON',
type: 'GET',
contentType: "application/json",
async: false,
success: function( response ) {
console.log(response);
$('#exampleModal').modal('show');
}
});
});
}); |
||
| Radek9 Profil |
Taps:
JSONP dělá něco trochu jiného, než si myslíš. Neslouží to k načítání obyčejné webové stránky, ale k načítání JSONu z webů, které nemají povoleno Cross-Origin Resource Sharing (CORS). Obchází se to tím, že se do stránky načte script, který volá tebou definovaný callback a předá mu data. Příklad (bez použití jQuery, aby bylo jasné, co to dělá): https://example.com/jsonp.js (tohle bývá typicky dynamicky generované podle query kvůli názvu callback funkce) callback('Hello world!')https://example2.com/index.js function callback(data) {
console.log(data) // vypíše 'Hello world!'
}
const script = document.createElement('script')
script.async = true
script.src = 'https://example.com/jsonp.js?callback=callback'
document.head.appendChild(script)Jinými slovy, z example.com se dynamicky načte script, který volá callback definovaný na example2.com. Pokud chceš načítat HTML obsah stránek, které nemají povolené CORS, budeš muset použít nějaký proxy server (a klasický AJAX). |
||
| Taps Profil |
#3 · Zasláno: 26. 11. 2021, 09:58:03
Radek9:
Děkuji |
||
|
Časová prodleva: 4 roky
|
|||
0