J'ai deux applications de rails. Dans la première application j'ai la méthode suivante dans mon contrôleur:rails3: rendu: json ne peut pas être lu à partir de jquery?
def delivery_status
envelope_id = params[:id]
render :json => envelope.to_json(:include => [:deliveries, :log_lines])
end
qui, si aller à l'url dans mon navigateur, montre bien mon JSON. Semble ok. Cependant, si j'appelle cela par jQuery, de ma deuxième application, en utilisant ce qui suit:
$(document).ready(function(){
$('#provisioning_sms_details_dialog').hide();
$('.get_sms_details').live('click', function(event) {
var el = $(this),
data_url = el.attr('data-url');
$.ajax({
url: data_url,
dataType: 'text',
success: function(data, status, req) {
alert('received with status' + status)
alert('received json ' + data);
}
});
});
});
alors le droit url est frappé avec les paramètres corrects mais data
est toujours vide. J'ai d'abord essayé d'utiliser $.getJSON
, puis $.get
pour terminer à $.ajax
. Je ne suis pas sûr mais il semble que je fasse quelque chose de mal au côté serveur. Si je regarde la requête à l'intérieur de firebug, la réponse est en effet vide. Pourtant, je ne comprends pas, si laisser le navigateur a frappé la même URL, je reçois mon objet JSON.
Des idées comment résoudre ce problème?
En effet, jsonp l'a résolu! Merci Magnar! – nathanvda