failed to open stream: HTTP isteği başarısız oldu!

4 Cevap php

Ben enlem / Ing bu kodu kullanarak bir php dosyasından ülke adlarını kullanarak koordinatları çekmek için bir webservice talep ediyorum:

$defaultcountry = $_REQUEST['country'];
$daurl = "http://ws.geonames.org/search?q=".$defaultcountry.'&rows=5';
$contents = file_get_contents($daurl);

$xml = new SimpleXMLElement($contents);
$lat = $xml->geoname->lat;
$lng = $xml->geoname->lng;

$coords = array('lat'=>"$lat", 'lng'=>"$lng");

$o = array('success'=>true, 'coords'=>$coords);  


echo json_encode($o);

i have doğrudan tarayıcı bu dosyayı arayarak sorunları yok. Sorun bu dosya yerde ajax tarafından çağrıldığını zaman olduğu gibi yani:

ajaxManager.add('cacheQueue',{
    								url: '../lib/getdefaultcoord.php',
    								type:'POST',
    								dataType:'json',
    								data:{country:Country},
    								success:function(json){
    									alert(json.coords.lng);

    								}

    								})

Benim konu satırında belirtildiği gibi, böylece hata çıkageldi. Ben farklı bir Webcoder url (webservicex.net) kullanarak countrynames talep için benzer bir senaryo var. Geonames.com o bir açılış ... Nasıl gelip ajax yapıldığında çalışmak için görünmüyor?

4 Cevap

Bu URL AJAX isteği yapmak sayfasından doğru mu?

url: '.. / lib / getdefaultcoord.php'

Eğer firebug almak ve ondan xhr incelemek gerekir.

Bence ya da url yanlış ya da beklenen gibi bazı parametreler geçmedi

im providing something u guys can play if you won't mind: requesting file with ajax:

$(document).ready(function(){ 


    	$.post('getdefaultcoord.php', {country:"united arab emirates"}, function(data){
    		alert(data.coords.lat);

    	},'json');


    });

getdefaultcoord.php üzerine:


$defaultcountry = $_REQUEST['country'];
$url = "http://ws.geonames.org/search?q=".$defaultcountry."&rows=5";
$contents = file_get_contents($url);

$xml = new SimpleXMLElement($contents);
$lat = $xml->geoname->lat;
$lng = $xml->geoname->lng;


$coords = array("lat"=>$lat,"lng"=>$lng);
$o = array('success'=>true, 'coords'=>$coords);

echo json_encode($o);

u dosya talep, ülke talebi ile düzgün çalıştığından emin olmak için getdefaultcoord.php oynamak ve böylece getdefaultcoord.php ile gider olabilir, benim konu satırında yayınlanan orijinal hata kundakçı kullanarak aynı olduğunu fark ...

Ben senin ajax arama size url için bütün yolu heceleyerek denemek gerektiğini düşünüyorum. Bunun yerine göreli kullanarak - ".. / Lib / getdefaultcoord.php" "http://www.yourdomain.com/lib/getdefaultcoord.php" kullanmayı deneyin. Ajax arama göreli referans karışabilir.