首页 > 解决方案 > 将 IP 地址传递给请求正文的问题

问题描述

嗨,我有这样的代码

$(window).load(function(){

        var cookieString = document.cookie;
        var parsedCookie = cookieString.split(";");
        var hutk = '';
        for(var i=0; i<parsedCookie.length; i++){
            var eachCookie = parsedCookie[i].split('=');
            if(eachCookie[0] == ' hubspotutk'){
                hutk += eachCookie[1];
            }
        }

$.getJSON('http://jsonip.com/?callback=?', function(r){
   var ret = r.ip;
   return true;
 });

        var context = new Object();
        context.hutk = hutk;
        context.ipAddress = ret;
        context.pageUrl = window.location.href;
        context.pageName = document.title;
        context.redirectUrl = 'https://info.cos.net.au/thank-you';

        document.getElementById('contextJSON').value = JSON.stringify(context);

});

我试图从外部服务器获取和传递 IPAddress 以及其他一些 cookie 值,但它不会收到我的 ip 地址字段。所有其他值都很好。console.log 确实在控制台中显示 IP 地址。

这一点导致了问题:

$.getJSON('http://jsonip.com/?callback=?', function(r){
   var ret = r.ip;
   return true;
 });

任何人都可以提出解决方案吗?javascript 也被接受。谢谢

标签: javascriptjqueryjson

解决方案


默认情况下,Ajax 调用异步运行。这包括$.getJSON, 尝试将您的代码放在$.getJSON call回调中。前任:

$.getJSON('http://jsonip.com/?callback=?', function(r){
   var ret = r.ip;
   return true;

   var context = new Object();
        context.hutk = hutk;
        context.ipAddress = ret;
        context.pageUrl = window.location.href;
        context.pageName = document.title;
        context.redirectUrl = 'https://info.cos.net.au/thank-you';

        document.getElementById('contextJSON').value = JSON.stringify(context);

 });

推荐阅读