2013-10-12 3 views
0

여기 JQuery에서 몇 가지 상황이 있습니다. 나는 외부 리소스에서 얻은 json 데이터를 로컬 배열 변수에 추가하려고한다. 하지만 작동하지 않습니다. 어쩌면 여기에있는 사람들이 내 코드에서 논리적 인 오류를 볼 수 있고 나를 위해 더 나은 해결책을 가질 수 있습니다. 고마워.로컬 변수에 JSON 응답을 저장하십시오.

var form_data = 
    { 
     email : $("#signup_email").val(), 
     browser_agent : browser_agent, 
     browser_version : browser_version, 
     os : os 
    } 

    $.getJSON("http://smart-ip.net/geoip-json?callback=?", function(data){ 

     form_data.ip = data.host; 
     form_data.countryName = data.countryName; 
     form_data.region = data.region; 
     form_data.city = data.city; 
    }); 

    console.log(form_data); 

결과 :

Object {email: "[email protected]", browser_agent: "chrome", browser_version: 30, os: "Win32", ip:"192.168.xx.xx", countryName : "indonesia", region : "West Java", city : "batavia"} 

어떤 제안들 :

Object {email: "[email protected]", browser_agent: "chrome", browser_version: 30, os: "Win32"} 

는하지만, 내가 기대하고있어이 같은 결과

여기 내 코드입니까? 해서 getJSON 응답 함수에 감사

+3

가능한 중복 [AJAX를 호출의 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how- to-return-from-ajax-call) –

+0

고마워요! 이게 내가 찾고있는거야. 당신은 내 하루를 저장 :) – under5hell

답변

0

사용을 console.log는

$.getJSON("http://smart-ip.net/geoip-json?callback=?", function(data){ 

    form_data.ip = data.host; 
    form_data.countryName = data.countryName; 
    form_data.region = data.region; 
    form_data.city = data.city; 
    console.log(form_data); 
}); 
0

는 마지막으로, 나는 해결책을 찾을 수 있습니다. 들 덕분에

...
var에 form_data = { 이메일 : $ ("#의 signup_email") 발(), browser_agent :. browser_agent, browser_version : browser_version, OS : OS, 장치 : 장치 }

get_user_geolocation(function (data){ 
form_data.ip = data.host; //ip 
form_data.countryName = data.countryName; // negara 
form_data.region = data.region; //provinsi 
form_data.city = data.city; //kota 
console.log(form_data) 
sign_up(form_data); 
}); 
... 
}); 

}); 

function get_user_geolocation(callback) 
{ 
$.ajax({ 
url: "http://smart-ip.net/geoip-json?callback=?", 
type: "GET", 
dataType: "json", 
success: function(data){ 
callback(data); 
} 
}); 
} 

function sign_up(form_data) 
{ 
$.ajax({ 
url: "signup_process.php", 
data: form_data, 
type: "POST", 
dataType: "json", 
}).done(function(data) { 
alert(data); 
}).fail(function(data){ 
alert("server error"); 
}); 

}의

관련 문제