我有两个rails应用程序。在第一个应用程序中 我的控制器中有以下方法:
def delivery_status
envelope_id = params[:id]
render :json => envelope.to_json(:include => [:deliveries, :log_lines])
end
,如果在我的浏览器中转到url,很好地显示我的JSON。好像没问题。 但是,如果我通过jQuery从我的第二个应用程序调用它,使用以下内容:
$(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);
}
});
});
});
然后使用正确的参数命中右侧网址,但data
始终为空。
我首先尝试使用$.getJSON
,然后使用$.get
结束$.ajax
。我不确定,但似乎我在服务器端做错了什么。
如果我查看firebug中的请求,响应确实是空的。然而,我不明白,如果让浏览器点击相同的网址,我会得到我的json对象。
有任何见解如何解决这个问题?
答案 0 :(得分:1)
这是跨域请求吗?在这种情况下,你的ajax-request将是HEAD类型,你只能看到一个空体。 Ajax调用受same origin policy限制。
如果是这种情况,您可以考虑使用JSONP来解决问题。