Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Problem med eget API

LP_MAXI
LP_MAXI

Gradering

#21154

Hej. 

Jag sitter och leker lite och försöker få ihop ett eget API, mest för att lära mig. 

Jag har en model som retunerar en array med användare från min databas. Denna array görs sedan om till ett JSON objekt.

Ni kan se vad som retuneras här: http://api.lpmaxi.se/api/getAllUsers

Det där fungerar, jag får ut det jag vill. 

Problemet är i mitt javascript som skall hämta detta JSON-objekt.

Min control:



public function getAllUsers(){

$this->load->model("User_model");

$users = $this->User_model->getAllUsers();

$this->output

   ->set_content_type('application/json')

   ->set_output(json_encode($users));

}




function getAllUsers(){

$sql = "SELECT username, email FROM users ORDER BY id DESC";

$result = $this->db->query($sql);

if ($result->num_rows() > 0) {

return $result->result_array();

}

else {

return false;

}

}


Min javascript kod ser ut så här: 



$(function() {

$.getJSON( 'http://api.lpmaxi.se/api/getAllUsers', function ( data ) { console.log( data ); } );

});


Jag får detta felet: XMLHttpRequest cannot load http://api.lpmaxi.se/api/getAllUsers. Origin http://linkentuss.se is not allowed by Access-Control-Allow-Origin.

Min html sida med javascript koden finns här: http://www.linkentuss.se/api.html

Jag har lagt dom på olika domäner bara för att se om det funkar. 

Vad gör jag för fel? Hur löser jag det? Det kanske är PHP-koden som retunerar JSON-objektet fel på något sätt? Eller måste jag göra något annat för att kunna hämta saker på detta viset? Hur gör tex andra sidor med API:er där man anropar en URL och får tillbaka en JSON? 

Som sagt, detta är bara lite test för att lära mig, jag vet att man skall göra en massa säkerhetstester med mera, men det kommer jag till. 

http://www.lpmaxi.se/
Taggar: API, javascript., php,
ID: #21154 | Skapades: 2011-08-17 12:08:31 | Tråden har 3 svar och har lästs 247 gånger.

voigtan
voigtan

Gradering

#21155

Om du inte kör JSONP på din server så kommer du inte kunna köra AJAX anrop från en annan domän än din egna.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21155 | Skapades: 2011-08-17 13:00:05

Shadi
Shadi

Gradering

#21156

Det där har med stor sannolikhet med den förhöjda säkerheten på webservern, dvs skydd mot Cross-Site-Scripting, det ser du på texten "Access-Control-Allow-Origin".

Du kan läsa mer om "Access-Control-Allow-Origin" och kringliggande info här (rekommenderas): https://developer.mozilla.org/en/HT..._access_control

För att lösa problemet så tror jag att du hittar lösningen här: https://developer.mozilla.org/En/Se..._Access_Control

Administratör på AspKoll.se!
ID: #21156 | Skapades: 2011-08-17 13:04:51

LP_MAXI
LP_MAXI

Gradering

#21160

Tack för informationen, ska titta mer på det efter USA-resan. 

http://www.lpmaxi.se/
ID: #21160 | Skapades: 2011-08-19 00:30:52
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy