簡體   English   中英

jQuery.getJSON()不起作用

[英]jQuery.getJSON() Not working

我正在嘗試從我的PHP腳本中獲取JSON數組。 以下是我在jsp文件中編寫的Jquery代碼-

$(document).ready(function()
            {
                    alert("Inside Ready");
                    $.getJSON('http://example.com/root_dir/test_json.php', function(data)
                    {
                        alert(data); 
                    });

            });

但是,上面的代碼僅顯示外部警報(即ale​​rt(“ Inside Ready”);),而不顯示內部警報(即ale​​rt(data);)。 當我在瀏覽器中點擊URL時,我得到了預期的json。 因此,毫無疑問,URL和php-script中沒有問題。

以下是test_json.php

<?php

//Create an array
$json_response = array();

        $row_array['label'] = 'A';
        $row_array['value'] = $row['0 to 2'];
        $row_array['color'] = '#FA2020';

         array_push($json_response,$row_array);

        $row_array['label'] = 'B';
        $row_array['value'] = $row['2 to 3'];
        $row_array['color'] = '#2BD95A';

         array_push($json_response,$row_array);

        $row_array['label'] = 'C';
        $row_array['value'] = $row['above 3'];
        $row_array['color'] = '#F7F739';

        //push the values in the array
        array_push($json_response,$row_array);

   echo json_encode($json_response); 
?>

當我在瀏覽器中點擊URL時獲取以下json-

[{"label":"A","value":"19","color":"#FA2020"},{"label":"B","value":"1","color":"#2BD95A"},{"label":"C","value":"2","color":"#F7F739"}]

我正在使用jquery-1.10.2.js 謝謝..!

試試這個...希望如此對您有用

        $(document).ready(function()
        {
            $.ajax({
                    type:'POST',
                    url:'http://example.com/root_dir/test_json.php',
                    dataType:'JSON',
                    data:{
                    },
                    success:function(data1){
                            alert(data)
                    },
                    error:function(XMLHttpRequest,textStatus,errorThrown){
                        alert("error");
                    }

                });
       });

您的代碼似乎運行良好-我剛剛用您的代碼創建了一個測試頁,它可以正常工作-

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
    alert("Inside Ready");
    $.getJSON('http://<<CHANGE SERVER NAME>>/zz-test/get_json.php', function(data)
    {
        alert(data);
    });
});
</script>
</head>
<body>
</body> 
</html>

您的jQuery和PHP代碼看起來不錯,因此,根據我的經驗,這通常是由於從其他域(即file:///)調用PHP腳本引起的錯誤。 如果可以訪問瀏覽器的控制台,則應該能夠查看這是否實際上是導致數據不顯示的錯誤。

一種解決方案是在PHP代碼的頂部添加: header('Access-Control-Allow-Origin: *'); 但是,此操作存在一些安全問題,因此不應永久使用。

或者,您可以將所有HTML,CSS,JS,jQuery等代碼上傳到托管PHP文件的Web服務器,這是更好的選擇。

最后,如果上述選項不可行,則可以使用JSON-P(盡管這不適用於POST請求),但是在Simple jQuery,PHP和JSONP示例中是否對此存在疑問

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM