2011-10-02 14 views
2
$.ajax({ 
    url:"http://www.xxxxxxxxxxxxxx.com/cc/validate", 
    type:"POST", 
    dataType:"json", 
    data: JSON.encode($parts), 
    complete: function(){ 
    }, 
    success: function(n) 
    { 
     console.log(n); 
     console.log(n.object); 
     console.log("ajax complete"); 
    }, 
    error: function(){ 
     console.log("error"); 

    } 
}); 
  • 這得到一個定義在ajax post調用上面的數組,並將一個編碼的json數組發佈到一個php文件中。問題是爲什麼這個帖子只會讓我回到「真實」或「虛假」。如果我嘗試返回任何字符串,我在ajax中得到錯誤。我希望能夠返回一個在PHP中創建的字符串,而不僅僅是「真」或「假」。
+2

我認爲這是同源政策 - http://en.wikiped ia.org/wiki/Same_origin_policy –

+0

我不知道這是否是問題,因爲這些文件來自同一站點的起源。如果這是問題,你知道一個解決辦法嗎? – user975587

+0

如果這是一個來自同一網站的文件,你可能想嘗試'url'中的相對路徑,看看是否有幫助 –

回答

1

你是在本地主機上?那麼如果是這樣,你可能不得不改變你的MIME頭(應用程序/ JSON)...你的JavaScript期待JSON,但你的PHP是回聲的HTML。

header('Content-type: application/json'); 

如果你想能夠返回別的東西然後json你必須刪除或更改你的ajax調用的內容類型。內容類型用於給jquery提供服務器期望的內容。如果你告訴它會接收json數據,你需要給它json或者你會有一個解析錯誤。

+0

謝謝!這是問題所在。除了這個修復之外,我還發現由於我沒有返回一個json數組,我需要在我的ajax調用中取出dataType:「json」。現在它可以工作 – user975587

1

你的代碼是好的 只要確保你的PHP文件返回的回聲json_encode($ arrayOFdata)

數據類型: 「JSON」,

意味着數據recived從PHP將被解析作爲一個JSON對象

,這並不意味着你會送一個JSON對象