2013-06-26 43 views
-2

上XAMPP我的PHP代碼jQuery的Ajax調用和簡單的PHP JSON字符串回聲服務器

<?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安裝路徑)) - 禁用 - 網絡安全允許跨域的起源策略,然後在您的最終運行的jsfiddle鏈接。

JSfiddle客戶端JS和PHP JSON數據

+0

那你的Chrome瀏覽器開發工具或Firebug的網絡選項卡上看到了什麼? – zerkms

+0

從服務器 – Nirus

+0

JSON字符串,因此內容類型爲'應用/ json'和http代碼是200? – zerkms

回答

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參數有時忽略:(

+0

**未捕獲的SyntaxError:意外的代幣} ** – Nirus

+0

是的......這是一個json錯誤。請自行檢查您的json ... –

+1

「actionflage」後面有一個trailing逗號,並且「surveyActionDisplayList」中的所有屬性均未包含雙引號...這些只是例子。還有更多。一個很好的工具來清理它:http://jsonformatter.curiousconcept.com/ –

2

,如果你需要的響應是JSON的jQuery自動解析,您應該使用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); 
        }, 
        ... 
       }); 
+0

我試過所有這些...請不要發佈試試.. – Nirus

+0

@Nirus - 我指出的是你的代碼中有一個確定的錯誤。 – techfoobar

+0

我需要一個工作版本。請發佈工作答案。不要指出錯誤 – Nirus

相關問題