AJAX-oproepen maken van javascript naar php met jQuery

Werken:

    function jsUpvote(photo_id, username) {

        //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username;

        $.get("http://uglyfacez.com/gallery/upvote.php?photo_id=15&username=user000",
            function(returnValue){
               //do stuff here
        });
    }

Ik heb de bovenstaande functie geschreven om een ​​php-script op de pagina uit te voeren en de variabelen photo_id en gebruikersnaam door te geven aan het script via de URL. Wanneer ik het hard codeer, zoals hierboven, werkt het prima, maar als ik het de javascript-variabelen geef (zoals je kunt zien in getURL), zal het helemaal niet werken. Dit is bijvoorbeeld wat ik wil doen, maar zal niet werken:

$.get("http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username,
            function(returnValue){
               //do stuff here
        });

Waarom werkt dit niet en wat is de oplossing?

EDIT: Ik ontdekte wat het probleem was. Om een ​​of andere reden zorgt het opnemen van www in mijn GET-URL ervoor dat het geen reactie van de server ontvangt. Zodra het van de URL is verwijderd, werkt het prima.

1
@RussellStrauss: Tomalak probeerde te zeggen dat "het werkt niet" een volledig nutteloze verklaring is en helpt niet bij het oplossen van het probleem. Het is algemeen te verwachten dat OP volledige informatie geeft over de fout en enige moeite doet om het probleem te onderzoeken voordat het wordt geplaatst. Andere mensen doneren hun tijd om het probleem op te lossen, dus enige minimale inspanning van OP's kant is nogal welkom.
toegevoegd de auteur Tadeck, de bron
Het spijt me dat je je zo voelt, maar als het zou lukken, zou ik hier niet zijn.
toegevoegd de auteur aleroxac, de bron
Sorry, wat ik daarmee bedoelde is "het blok van code wordt niet uitgevoerd en ik kan er niet achter komen waarom." Ik wist niet dat ik dat de eerste keer niet had gezegd.
toegevoegd de auteur aleroxac, de bron

3 antwoord

Dit lijkt een probleem te zijn met betrekking tot aanvragen voor meerdere domeinen .

U kunt enkele oplossingen gebruiken, zoals JSONP of u kunt -script laden vanuit een ander domein (in dit geval: www -domein). Ga naar de .ajax() </> om verschillende aspecten en instellingen voor interdomein te bekijken. code> documentatiepagina (en zoek naar " interdomein " of " crossDomain ").

Het probleem is in feite een probleem dat is verbonden met hetzelfde bronbeleid . Op de genoemde documentatiepagina kunt u lezen dat:

      
  • Vanwege browserbeveiligingsbeperkingen zijn de meeste 'Ajax'-verzoeken onderworpen aan het beleid met dezelfde oorsprong ; het verzoek kan geen gegevens uit een ander domein, subdomein of protocol ophalen.
  •   
  • Script- en JSONP-aanvragen zijn niet onderhevig aan dezelfde restricties voor het oorsprongsbeleid.
  •   
2
toegevoegd

Hier is de sysntax voor de jQuery .get-functie:

jQuery.get (url [ data] [ success (data, textStatus, jqXHR)] [ dataType])

zoiets als:

$.get("http://www.uglyfacez.com/gallery/upvote.php", {'photo_id':photo_id,'username':username},
            function(returnValue){
               //do stuff here
        });

probeer de syntaxis te volgen, leg eerst de gegevens op de parameters van de functie, ik denk dat deze link u ook kan helpen:

http://api.jquery.com/jQuery.get/

Of als u nog steeds hetzelfde probleem tegenkomt probeer de koppeling dan handmatig opnieuw in uw browser te openen en controleer of deze elke fout retourneert om er zeker van te zijn dat deze de verwachte uitvoer retourneert. :)

1
toegevoegd
Ziet u fouten in firebug wanneer de code wordt geactiveerd, als deze goed werkt op de eigenlijke site van uw aanvraag, dan wordt deze veroorzaakt door een fout in de javascript-code die u heeft, als firebug javascript-bug retourneert, zou het beter als je het hier plaatst, zodat we het probleem gemakkelijker kunnen detecteren. :)
toegevoegd de auteur Christopher Pelayo, de bron
graag gedaan. :)
toegevoegd de auteur Christopher Pelayo, de bron
Het handmatig openen van de link in mijn browser werkt prima en veroorzaakt geen fouten. Dit is hoe ik weet dat het een probleem is met mijn .get-oproep.
toegevoegd de auteur aleroxac, de bron
dit beantwoordt ook een andere vraag die ik had, bedankt
toegevoegd de auteur aleroxac, de bron

Stelt u photo_id en gebruikersnaam juist in? Meer code kan helpen. Wat is de foutmelding? Gebruikt u Firebug of Chrome om te zien of u een foutmelding krijgt? Het lijkt erop dat photo_id en/of gebruikersnaam niet correct worden doorgegeven.

0
toegevoegd
Ja, zowel photo_id als gebruikersnaam worden doorgegeven en correct ingesteld. Als ik alert (getURL); het geeft me de exacte URL die ik wil. Als ik in 15 doorga voor photo_id en user000 voor gebruikersnaam, geeft dit me de exacte URL hierboven. Er is geen code meer die ik gebruik. U kunt de fout hier zien: i.imgur.com/Rujzb.png De code in de functie (returnValue) -blok wordt gewoon helemaal niet uitgevoerd. Ik gebruik Firebug om te debuggen.
toegevoegd de auteur aleroxac, de bron
Dit is mijn volgende vraag. Gebruikt u een type tool om te zien wat er wordt verzonden of geretourneerd via de URL? Ik ben nog steeds aan het denken dat er misschien een ruimte is of iets dat gemist wordt.
toegevoegd de auteur Jamie R Rytlewski, de bron