-2

Xampp での私の PHP コード

<?php
$data = ((**Refer the JS fiddle Link below for JSON data**));
//header('Content-Type: application/json');
echo $data;
?>

私のクライアントのJavascriptコード

function clickbtn(){
$.ajax({
    url: 'http://localhost/json/index.php',
                    type: 'GET',
                    contentType:'json',
                    //data: JSON.stringify(data),
                    success:function(dataF){
                    console.log('SuccessMsg:'+dataF);
                        alert(dataF.surveyId);
                    },
                    error:function(){
                        alert('Error: Unable to connect to the server');
                    }
                });
} 

ブラウザ コンソールの php サーバーから JSON をダンプできます。しかし、アラート ボックスにアラート「SurveyID」の値が表示されません。

JS フィドル リンクで利用可能な JSON データを取得し、PHP スクリプトに貼り付けてテストしてください。

Chromeでテストしている場合は、((Chrome インストール パス))--disable-web-securityを追加してクロス ドメイン オリジン ポリシーを許可し、最後に JSfiddle リンクを実行してください。

クライアント JS および PHP JSON データのJSfiddle

4

2 に答える 2

2

応答を jQuery によって自動的に解析される JSON にする必要がある場合は、dataType代わりにこのオプションを使用する必要があります。contentType

$.ajax({
    url: 'http://localhost/json/index.php',
                    type: 'GET',
                    dataType:'json', /* dataType instead of contentType */
                    ...
                    success:function(dataF){
                        console.log('SuccessMsg:'+dataF);
                        alert(dataF.surveyId);
                    },
                    ...
                });
于 2013-06-26T07:43:17.897 に答える
1

場合によっては、jQuery (またはブラウザー?) がオブジェクトではなく文字列で応答することがあります。これをチェックして、おそらくjsonに解析する必要があります。私はこの問題に頻繁に遭遇したので、毎回これをチェックしています。

function clickbtn(){
$.ajax({
    url: 'http://localhost/json/index.php',
                    type: 'GET',
                    success:function(dataF){
                    console.log('SuccessMsg:'+dataF);
                        if(typeof dataF != 'object')
                        {
                            dataF = jQuery.parseJSON(dataF);
                        }
                        alert(dataF.surveyId);
                    },
                    error:function(){
                        alert('Error: Unable to connect to the server');
                    }
                });
} 

dataType パラメータは時々無視されると思います:(

于 2013-06-26T07:56:25.787 に答える