我无法让用户IP继续使用下一个功能,因为每次拨打$.getJSON
它都会跳过我的功能。我确定返回的JSON很好,因为当我运行此处显示的代码时:
<script type="application/javascript">
$.getJSON("http://www.telize.com/jsonip?callback=?",
function(json) {
document.write("My IP address is : ", json.ip);
}
);
</script>
IP完全按照您的预期写入屏幕。这是我最近的尝试:
<script type="application/javascript">
function verifyRecaptchaAnswer() {
var privateKey = 'privateKey';
var challengeValue = $('#recaptcha_challenge_field').val();
var responseValue = "manual_challenge" ;
var userIP = $('#hiddenField').val();
$.post("http://www.google.com/recaptcha/api/verify",
{ privatekey: privateKey, remoteip: userIP, challenge: challengeValue, response: responseValue },
function(data) {
return data;
}
);
}
$(document).ready(function() {
var hiddenField = document.createElement('input');
hiddenField.setAttribute("name", "ipHolder")
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("id", "hiddenField");
$.getJSON("http://www.telize.com/jsonip?callback=?",
function(json) {
hiddenField.setAttribute("value", json.ip);
}
);
$('#submit').on("click", function(){
event.preventDefault();
verifyRecaptchaAnswer();
});
});
</script>
我已经在function(json){}
块中尝试了太阳下的一切,但没有一个能够正常工作。当然,除了网站上显示的示例http://www.telize.com/,这是第一个发布的代码块。我找到这个网站后发现了这个网站:How to get client IP address using jQuery,看起来像是一样的东西。我还没有开始测试verifyRecaptchaAnswer
功能,但这就是我想要的用户IP。
答案 0 :(得分:2)
我认为你错过了这一行:
document.body.appendChild(hiddenField);