Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅从ajax查询中获取JSON_Javascript_Jquery_Ruby On Rails_Ajax_Json - Fatal编程技术网

Javascript 仅从ajax查询中获取JSON

Javascript 仅从ajax查询中获取JSON,javascript,jquery,ruby-on-rails,ajax,json,Javascript,Jquery,Ruby On Rails,Ajax,Json,我正在使用以下脚本: var test = $.ajax({ url : ("/areas/list"), type : 'GET', dataType : 'json', success : function(e) { } }); 我在var text中得到这个结果: Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: f

我正在使用以下脚本:

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.

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.
}});

test
variables值将是
$.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.
}});

您没有对成功回调中返回的数据执行任何操作

这应该起作用:

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对象

您没有对成功回调中返回的数据执行任何操作

这应该起作用:

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对象

您正在尝试同步获取值,这不是一个好做法。您应该尝试以下方法:

var test;
$.ajax({  
    url:"/areas/list",  
    type:"GET",  
    dataType:"JSONP",  
    success:function(testdata){  
    console.log(testdata);  
    test=testdata;  
    }  
});

您正在尝试同步获取值,这不是一个好的做法。您应该尝试以下方法:

var test;
$.ajax({  
    url:"/areas/list",  
    type:"GET",  
    dataType:"JSONP",  
    success:function(testdata){  
    console.log(testdata);  
    test=testdata;  
    }  
});

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数据不同。从服务器返回时,必须使用以下命令对其进行解析:


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对象…@guilb您的JSON对象是来自ajax调用的“响应”。最好在成功回调中进行处理。我尝试了这种方法。我没有错误,但我不知道如何获取JSON对象…@guilb您的JSON对象是来自ajax调用的“响应”。最好在成功回调内进行处理。我尝试了此方法,但出现以下错误:
GEThttp://localhost:3000/areas/list?callback=jQuery11020130594129441306_1383638694289&_=1383638694290 500(内部服务器错误)jquery.js?body=1:8707 jquery.ajaxTransport.send jquery.js?body=1:8707 jquery.extend.ajax jquery.js?body=1:8137 drawMap edit_profile5:98(匿名函数)
@VickyGonsalves,花括号不完整:)我已经更正了花括号。。。我使用了Jite解决方案,现在它可以工作了。我尝试了这个方法,但是我得到了这个错误:
GEThttp://localhost:3000/areas/list?callback=jQuery11020130594129441306_1383638694289&_=1383638694290 500(内部服务器错误)jquery.js?body=1:8707 jquery.ajaxTransport.send jquery.js?body=1:8707 jquery.extend.ajax jquery.js?body=1:8137 drawMap edit_profile5:98(匿名函数)
@VickyGonsalves,花括号不完整:)我已经更正了花括号。。。我使用了Jite解决方案,它现在可以工作Console.log(e)content my JSON:-)但是,我不知道如何在这个函数之外获得它?嗯,这是一个异步回调,所以你不知道什么时候有它。做你想在回调中做的事情:)顺便说一句。”“e”通常用于“事件”,使用“结果”或“数据”来更清楚地说明您在做什么:)控制台。日志(e)内容我的JSON:-)但是,我不知道如何在这个函数之外获取它?嗯,它是一个异步回调,所以您不知道什么时候有它。做你想在回调中做的事情:)顺便说一句。”“e”通常用于“事件”,使用“结果”或“数据”来更清楚地说明您正在做什么:)