我正在使用这个脚本:
var test = $.ajax({ url : ("/areas/list"), type : 'GET', dataType : 'json', success : function(e) {
} });
我在var text
:
Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
overrideMimeType: function ( type ) {
pipe: function ( /* fnDone, fnFail, fnProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 4
responseJSON: Object
responseText: "{↵ "kind": "fusiontables#sqlresponse",↵ "columns": [↵ "INSEE_COM",↵ "KML",↵ "NOM_COMM"↵ ]}"
setRequestHeader: function ( name, value ) {
state: function () {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( /* fnDone, fnFail, fnProgress */ ) {
__proto__: Object
问题是,在这个对象中,我想只获得响应JSON的对象。我试过test.responseJSON,但它不起作用......
我怎样才能获得JSON?
感谢您的帮助!
F。
答案 0 :(得分:4)
您没有对成功回调中的返回数据执行任何操作。
这应该有效:
var test;
$.ajax({
url: "/areas/list",
type: 'GET',
dataType: 'json',
success: function(response) {
// Do what ever with the response here
console.log(response);
// or save it for later.
test = response;
}
});
如果您决定将响应保存在变量中,则无法立即访问该变量。 ajax请求不完整。最好在成功回调中处理JSON对象。
答案 1 :(得分:3)
test
变量值将是$.ajax()
函数调用返回的值,而不是结果。 $.ajax
不会立即返回调用中的值,它是异步的,这就是使用回调(success: function(e) {}
)的原因。当ajax调用成功获取要求获取的任何内容时,将调用success
回调。
检查成功回调中的e
是什么!
$.ajax({url: ("/areas/list"), type: 'GET', dataType: 'json', success: function(e) {
console.log(e); // e == result from the ajax call.
}});
答案 2 :(得分:1)
你试图同步获取值,这不是一个好习惯。您应该尝试以下方式:
var test;
$.ajax({
url:"/areas/list",
type:"GET",
dataType:"JSONP",
success:function(testdata){
console.log(testdata);
test=testdata;
}
});
答案 3 :(得分:1)
<强> 1。您是否返回JSON数据?
在您的AJAX中,您正在向/areas/list
处的链接发送请求 - 您如何在Rails控制器中处理该请求?
要返回JSON数据,它应该是这样的:
#app/controllers/areas_controller.rb
def list
respond_to do |format|
format.json { return :json => "hello".to_json }
end
end
发布控制器代码对我们所有人都有很大的帮助
<强> 2。您是否正确处理JSON数据?
JSON
数据与“普通”javascript数据不同。使用JSON parse functions:
$.ajax({
url : ("/areas/list"),
type : 'GET',
dataType : 'json',
success : function(data) {
var json_data = JSON.parse(data);
//do what you need here with the new array
}
});