Basis AJAX-aanvraag Javascript/PHP werkt niet

Ik probeer een eenvoudige AJAX-aanroep uit te voeren waarbij ik het adres 'www.google.com' naar urlpost.php verzend, maar de huidige code lijkt geen antwoord te kunnen vinden (er gebeurt niets) . Ik heb geprobeerd de fout te zoeken, maar ik weet niet waar ik fout ben gegaan.

Bij voorbaat dank!

Disclaimer: This is an variation of an example from Robin Nixon's Learning PHP, MySQL & Javascript

index.html

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ajax Example</title>
    </head>
    <body>

    

Loading a web page into a DIV

<div id='info' align='center'>This Sentence will be replaced </div> <script> request = new ajaxRequest() request.open("POST", "urlpost.php", true) //also tried 'test/urlpost.php' (test is the folder of the file) request.setRequestHeader("Content-type", "application/x-www-form-urlencoded") request.setRequestHeader("Content-length", params.length) request.setRequestHeader("Connection", "close") request.send("url=www.google.com") request.onreadystatechange = ajaxCallback function ajaxCallback() { alert("Reponse received") //just letting me know I got a reponse if(this.readyState==4) //ready { if (this.status==200) //no idea { if (this.responseText != null) { document.getElementById('info').innerHTML = this.responseText } else alert("AJAX ERROR: NO DATA RECEIVED") } else alert("Ajax error: "+this.statusText); } } function ajaxRequest() { try //non IE browser { var request = new XMLHttpRequest(); } catch(e1) { try//IE6+? { request = new ActiveXObject("Msxml2.XMLHTTP") } catch(e2) { try//IE5? { request = new ActiveXObject("Microsoft.XMLHTTP") } catch(e3) //No Ajax support { request = false } } } return request } </script>

urlpost.php

<?php
if (isset($_POST['url'])){
    echo file_get_contents("http://".$_POST['url']);
}

?>
1
zet de script-tag in de <head>?
toegevoegd de auteur edwardmp, de bron
je code is overigens een beetje ouderwets. Het zou gemakkelijker en beter zijn om jQuery hiervoor te gebruiken.
toegevoegd de auteur edwardmp, de bron
gebruik de ontwikkelaarsconsole om te debuggen
toegevoegd de auteur arijeet, de bron
IE5-ondersteuning? ... Ik ben sprakeloos!
toegevoegd de auteur Matt, de bron
Om uw voorbeeld te debuggen, moet u Firebug of de ingesloten foutopsporing proberen als u een webkit-browser gebruikt. U zult zien of het verzoek is verzonden of niet, en u kunt breekpunten plaatsen.
toegevoegd de auteur Fabien Quatravaux, de bron
Gebruik voor eenvoudiger debuggen ook een eenvoudigere code in uw urlpost.php-bestand, zoals <? PHP echo "Hello"?> . Je zult later de POST-variabele behandelen.
toegevoegd de auteur Fabien Quatravaux, de bron
Ik heb een oplossing hieronder gepost, maar OP beantwoordt niet.
toegevoegd de auteur Alex Belanger, de bron
Ik leer van een boek dat in 2009 is gepubliceerd, dus ik denk dat het misschien een beetje achterhaald is :) Bedankt voor de feedback iedereen.
toegevoegd de auteur J Y, de bron

2 antwoord

Gebruik jQuery om het te herschrijven, veel gemakkelijker.

$(document).ready(function(){

        $.ajax({
            type: "post",
            url: "urlpost.php",
            data: "url=www.google.com",

            success: function(msg){
                $('#replace').html(msg);

            }
        });
    return false;

});​
1
toegevoegd

request.setRequestHeader ("Content-length", params.length)

params.length is undefined. You need to replace this by the length of the data you're sending

request.send("url=www.google.com") in your case that's 18 characters.

1
toegevoegd
Dit is perfect - nu aan het werk.
toegevoegd de auteur J Y, de bron