javascript - jQuery 无法从 PHP 脚本读取 JSON 响应

标签 javascript jquery ruby-on-rails json

在我的表单中,我想用两个字段做一些事情:

“website_domain”和“website_ip_address”

我正在尝试使用 jQuery/JSON 调用 PHP 脚本,将 website_domain 传递给它,并接收包含该网站 IP 地址的 JSON。

问题/症状描述:

部分工作:在模糊时,它获取 PHP 脚本的 url。我可以在 Firebug 中看到这么多。我得到 200 OK。根据 JSONLint,PHP 脚本的输出是有效的 JSON:

{"field":"website_ip_address","value":"74.125.225.70"}

但在 Firebug 中,我没有 JSON 选项卡。我只有 Params 和 Headers 选项卡。甚至没有响应选项卡。

不用说,website_ip_address 字段也没有填充我应该从 PHP 脚本的 JSON 输出中获取的数据。

我的 PHP 脚本:

可能需要注意的是,目前此 PHP 脚本与我的应用程序位于不同的域中。也许我的整个问题都是跨域的?

<?php 
    $domain = $_GET["domain_name"];
    $ip = gethostbyname($domain);
    // echo $ip;
    $json = array(
        'field' => 'website_ip_address',
        'value' => $ip,
        );
    header('Content-Type: text/plain');
    echo json_encode($json );
?>

我的 jQuery/JSON 脚本:

请注意,这是在 Ruby On Rails 应用程序 View 中编写的。

:javascript
  $("#website_domain").bind("blur", function(e){
     $.getJSON("http://exampledomain.com/temp_getIP.php?domain_name=" +$("#website_domain").val(),
        function(data){
          $('#website_ip_address').val(data);
        });
});

我真的希望这不仅仅是我的语法错误。根据我在 StackOverflow 上找到的答案,我已经写/重写了 2 天,但无济于事。我只是在这里遗漏了一些东西。

最佳答案

您当前正在尝试将 JS 对象(由解析的 JSON 响应形成)输出到该字段。您需要从其中 输出一个值。所以不是:

$('#website_ip_address').val(data); //data is an object, not a string

但是

$('#website_ip_address').val(data.someValue); //output a property of the object

按原样使用您的代码,我希望该字段填充对象的字符串表示形式,即 [object Object]。你没有提到这一点,所以我想知道 a) 你的成功功能是否正在触发(检查这个 - 在其中粘贴一个 console.log); b) 你的 jQ 选择器是正确的。

关于javascript - jQuery 无法从 PHP 脚本读取 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022749/

相关文章:

jquery - 在将 IMG 添加到 DOM 之前获取 IMG 的自动大小(使用 JQuery)

javascript - 从 json 中查找元素

ruby-on-rails - 使用 Java 更改 ruby​​ View

ruby-on-rails - Rails jqgrid 列背景色动态

javascript - 检测用户的操作系统并重新排列/样式下载链接

javascript - Firebug Lite 使我的网站可以在 IE 中运行

javascript - 为 HOC 编写流 libdef

javascript - 错误。从 ASP.NET 页面获取 JSONP

ruby-on-rails - 多表继承上的 has_one 和多态关联

javascript - JQuery .on ('click' ...引用列表组项的问题