SEÇENEKLER $ için yapılan talep. Ajax

2 Cevap php

Ben şu anda cevap olarak bir xml dosyasının içeriğini göndermek gerekir getxml.php adında bir php komut dosyası, bir çağrı yapıyorum benim yerel machine.I çalışan im, aşağıdaki kodu var.

But,instead of a GET request, in Firebug i see that an OPTIONS request is being made, like OPTIONS getxml.php . I think im not making a cross domain Ajax request,but still am facing this problem . Any way to fix this ?

var employee_list = new Object; 
$(function(){
    			$.ajax({
    			type:"GET",
    			url:"http://localhost/projectname/getxml.php",
    			datatype:"xml",
    			success: function(xml){
    				$(xml).find('employee').each(function(){
    					var name_text = $(this).find('name').text();
    					var url_text = $(this).find('url').text();
    					employee_list[name_text] = url_text;
    					$('<li></li>').html(name_text + ' (' + url_text + ')').appendTo('#update-target ol');

    				});
    			} //closing function		
    		 }); //closing $.ajax

}); //closing $(

getxml.php

<?php
    //Send the xml file as response
    header('Content-type: text/xml');
    readfile('employee_results.xml');
?>  

Thank You

2 Cevap

Emin getxml.php var olun. SEÇENEKLER genellikle hafif bir yazım hatası var demektir.

değişim datatype dataType ve bu sorunu giderir görmek. Kodun geri kalanı doğru görünüyor.

edit: ayrıca, ben bir PHP yanlısı değilim, ama ben de benzer bir yaklaşım kullanan bir harita uygulaması yazdı. Xml dönmek için, ben kullanılan:

header("Status: 200");
header("Content-type: text/xml");
echo  file_get_contents($q,0); /*$q is the query/filename*/  
exit();

I header("Status: 200"); gerekli olduğunu okuduğumu hatırlıyorum.

edit: İşte ben de aynı şeyi yaptık nasıl. Bu yardımcı olur umarım.

 /* call ajax method to retrieve earthquakes */
  $.ajax({
    type: "GET",
    url: "../getxml.php?q=" + xmlLocation, 
    dataType: "xml",
    success: function(xml){
            $(xml).find('entry').each(function(){
                /* Retrieve all needed values from XML */
                var title = $(this).find('title').text();
                var summary = $(this).find('summary').text();
                var coord = $(this).find('georss\\:point').eq(0).text();
                if(!coord){var coord = $(this).find('point').text();}; 
                var points = coord.split(' ');
                var latitude = parseFloat(points[0]);
                var longitude = parseFloat(points[1]);  
                var htmlString = "<div class=\"infowindow\"><b>" + 
                                title + "</b>" + "<p>" + summary + "<br></div>";
                var myLatlng = new google.maps.LatLng(latitude,longitude);
                var marker = new google.maps.Marker(
                {
                 position: myLatlng,
                 map: map,
                 title: title
                });
                markers[markers.length] = marker;
                addInfoWindow(marker, map, htmlString);

                $('#output').text("Showing " + markers.length + " earthquakes");
            });/*  end each */
        }
    }); /* end $.ajax */

Php dosyası yukarıda yayınlanmıştır tam olarak, ancak ajax isteklerine yanıt vermek için "güvenlik" ile.