Kom ihåg mig?
Home Menu

Menu


jquery load() fast mot externa sidor

 
Ämnesverktyg Visningsalternativ
Oläst 2009-06-27, 18:23 #1
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Tjena

Hur gör jag om jag vill ha samma funktionallietet som load() har i jquery fast mot en extern sida.
Jag vill alltså kunna skicka parametrar (POST/GET) till en extern sida via jquery (js).

Resultatet av målsidan ska sen kunna laddas in i en div, precis som man kan med load().

Hoppas ni hängde med och att ni kan hjälpa mig.

//Johan
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 18:35 #2
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
GET är ju bara att skicka i URL'en.

För POST: http://docs.jquery.com/Ajax/jQuery.post
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 18:57 #3
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Normalt sätt brukar man använda ett proxy-script på sin egen server som postar det mot den externa servern.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 19:18 #4
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Citat:
Originally posted by Clarence@Jun 27 2009, 16:57
Normalt sätt brukar man använda ett proxy-script på sin egen server som postar det mot den externa servern.
Det ska användas på andra hållet. Jag ska enbart kunna lägga in en .js-fil på valfri domän så ska scripet funka mot min domän.

Get och Post istället för load funkar inte mot externa sidor.
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 21:03 #5
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
Citat:
Originally posted by elitasson@Jun 27 2009, 18:18
Get och Post istället för load funkar inte mot externa sidor.
Nepp.. javascript har detta för högre säkerhet. Lösningen finner du i svaret från Clarence.
taz76 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 23:45 #6
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av elitasson
Citat:
Ursprungligen postat av Clarence
Normalt sätt brukar man använda ett proxy-script på sin egen server som postar det mot den externa servern.

Det ska användas på andra hållet. Jag ska enbart kunna lägga in en .js-fil på valfri domän så ska scripet funka mot min domän.

Get och Post istället för load funkar inte mot externa sidor.
Jag tror du missuppfattade mitt svar. För att förtydliga:

Du lägger en javascript- och t ex en PHP-fil på domänen du vill hämta innehåll till. Javascriptet kör ett ajax-anrop mot denna PHP-fil som sedan vidarebefodrar anropet till en extern server med t ex libcurl eller file_get_contents.

Det finns dock alternativ, t ex:
- Ladda en extern javascript-fil från den andra domänen som inkluderas dynamiskt med <script>-tagg
- Ladda innehållet i en iframe och hantera sedan innehållet i iframen med javascript
- Använda P3P headers

Alla har dock (i min mening) nackdelar jämfört med proxy-lösningen.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-27, 23:52 #7
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Jag har som sagt enbart en .js-fil att tillgå på den externa servern.

Har lyckats lösa det i FF, men det vill sig varken i Chrome, Safari eller IE.

Citat:
var exampleurl = "http://example.se/blogg_send.php?blogid=<?php print $_GET['id']; ?>&url=" + url + "&text=" + text +"&jsoncallback=?";

$.getJSON(exampleurl, function(data) {

$("#skickat").html(data.msg);
});
Sen har vi en ruta med 2-3 st klicklänkar där man nog kan lösa hide/show på ett bättre sätt. Kan någon ge förslag? Tack.

Citat:
$sat("#example_ruta").html(blogbox);

$sat("#write").click(function () {

$sat("#send").show();
$sat("#write").hide();
$sat("#back").hide();

$sat("#skriv").show();
$sat("#msg").hide();
$sat("#works").hide();
$sat("#skickat").hide();

});

$sat("#send").click(function () {

$sat("#back").show();
$sat("#write").hide();
$sat("#send").hide();

$sat("#skickat").show();
$sat("#skriv").hide();
$sat("#msg").hide();
$sat("#works").hide();

$sat("#work").click(function () {

$sat("#back").show();
$sat("#write").hide();
$sat("#send").hide();

$sat("#works").show();
$sat("#skriv").hide();
$sat("#msg").hide();
$sat("#skickat").hide();
});

$sat("#back").click(function () {

$sat("#write").show();
$sat("#send").hide();
$sat("#back").hide();

$sat("#msg").show();
$sat("#skriv").hide();
$sat("#works").hide();
$sat("#skickat").hide();
});

});
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-28, 00:18 #8
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Originally posted by elitasson@Jun 27 2009, 21:52
Jag har som sagt enbart en .js-fil att tillgå på den externa servern.

Har lyckats lösa det i FF, men det vill sig varken i Chrome, Safari eller IE.
Default kan du inte göra det i Firefox heller. Det beror på webbläsarens säkherhetsinställningar. För att få något i närheten av hyfsad webbläsar-kompatibilitet måste du titta på alternativa metoder.

En god idé kan vara kolla över denna inställning på din egen dator om du använder Firefox även till tjänster där du är inloggad (t ex WN).

Gällande länkarna kan du kanske ersätta det med ett anrop till en funktion som döljer allt, och sedan t ex $('#send, #skriv').show();
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-28, 00:56 #9
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Clarence:

Om du kollar här så kan du läsa att man ska kunna skicka HTTP GET requester över olika domäner.

När jag testade denna sidan för ett par olika webbläsare jag har på min dator (Chrome, IE, FF) så verkar alla vara kompatibla med denna funktion (getJSON).
Testa själv så får du se.

Hur bemöter du det?

Någon i övrigt som använt getJSON och har lite erfarenheter med tips och idéer som kan hjälpa mig?
Det funkar alltså i FF, men inte i övriga webbläsare jag testat.
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-06-28, 01:30 #10
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Originally posted by elitasson@Jun 27 2009, 22:56
Clarence:

Om du kollar här så kan du läsa att man ska kunna skicka HTTP GET requester över olika domäner.

När jag testade denna sidan för ett par olika webbläsare jag har på min dator (Chrome, IE, FF) så verkar alla vara kompatibla med denna funktion (getJSON).
Testa själv så får du se.

Hur bemöter du det?

Någon i övrigt som använt getJSON och har lite erfarenheter med tips och idéer som kan hjälpa mig?
Det funkar alltså i FF, men inte i övriga webbläsare jag testat.
Sorry, noterade inte att du hade .getJSON. Den alternativa metoden från min tidigare lista som används för JSONP är en <script>-tagg som läggs in i ditt dokument av jquery. Dock visste jag inte att jquery hade en färdig wrapper, så tack för den infon.

Du får nog helt enkelt slå på javascript-debuggen i respektive browser så att du kan se felmeddelandet. Felet kan vara i princip vad som helst med hanteringen av datan i din javascript eller strukturen på datan i JSON-filen (dock ett mindre fel, om Firefox klarar sig igenom det).
Clarence är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:40.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017