1

私のフォームでは、2つのフィールドで何かをしたいと思います。

「website_domain」と「website_ip_address」

jQuery / JSONを使用してPHPスクリプトを呼び出し、website_domainを渡して、そのWebサイトのIPアドレスを含むJSONを受信しようとしています。

問題/症状説明:

部分的に機能しています。ぼかしの場合、PHPスクリプトのURLを取得します。ファイアバグでそれだけ見ることができます。私は200OKを取得します。PHPスクリプトからの出力は、JSONLintによると有効なJSONです。

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

しかし、Firebugには、JSONタブがありません。[パラメータ]タブと[ヘッダー]タブしかありません。[応答]タブすらありません。

言うまでもなく、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スクリプト:

これはRubyOnRailsアプリケーションビュー内に記述されていることに注意してください。

: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日間作成/書き直しましたが、役に立ちませんでした。ここで何かが足りません。

4

3 に答える 3

2

問題は異なるドメインにある可能性があります。以前はこんな感じでした。PHPで追加してみてくださいheader("Access-Control-Allow-Origin: *")

于 2012-08-18T22:48:06.300 に答える
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セレクターは健全です。

于 2012-08-18T22:52:34.043 に答える
0

jQueryコードをドキュメント内に準備します。例:$(function(){ });

:javascript
$(function() {
    $("#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);
           });
        });
    });
});

そして、あなたは行方不明の終わりを持っています})

于 2012-08-18T22:47:16.540 に答える