2017-03-21 95 views
0

我知道,JSON可以2個Web服務器之間使用,例如Facebook的API使用aFile.json所以我的網站需要使用PHP的json_decode來處理它提供了一些相關信息()函數JSON在Web服務

這個問題我無法想象我們可以在服務器和他的客戶端之間使用它來交換數據的任何實際情況。如果由於某種數據的客戶端請求時,服務器將使用SQL從數據庫或JSON收到文件或任何其他人檢索它們......但最後他將一個HTML文件只響應(& probabely一些圖片),所以客戶端的瀏覽器可以解釋它,

我錯了和JSON文件可以被髮送到客戶端?那麼爲什麼 ? 我還認爲JSON是用於在PHP和JavaScript之間進行通信的相同的服務器,你能舉個例子嗎?

+1

JSON後簡單地數據交換格式,就像XML,CSV等。關於它的好處是大多數客戶端瀏覽器都使用JavaScript,因此可以本地解析和使用它。 – Machavity

回答

0

你可以考慮一下這種方式:

  1. 你去網站X,你的瀏覽器(客戶端)發送請求到服務器,用於特定的頁面。在這種情況下,服務器將使用HTML頁面進行響應,HTML頁面將由您的瀏覽器呈現給您。
  2. 你已經在網站X上了,你的瀏覽器已經爲你提供了一個頁面,現在你有了新聞訂閱的輸入,你在這個輸入中輸入了你的電子郵件並點擊'訂閱'。這裏的一種情況是,JavaScript將使用JSON格式將電子郵件發送到服務器,並且服務器將響應與您的HTML相關的JavaScript某些確認(也是JSON格式),並將顯示給您。

可能會使用第二種情況,以避免重新加載已經呈現給您的頁面。

你可以去開發工具在你的瀏覽器,可以顯示部分網絡,你可以觀察到這些客戶端和服務器之間來回發送不同的HTTP消息。

欲瞭解更多信息,我建議您閱讀https://developer.mozilla.org/pl/docs/Web/HTTP,因爲他們有關於HTTP有很好的文檔。

+0

「JavaScript將使用JSON格式將您的電子郵件發送到服務器」 您的意思是客戶端將發送JSON文件到服務器而不是HTTP請求嗎?或者沒有文件並且HTTP請求中包含JSON字符串? –

+0

您不能區分JSON和HTTP請求,這些是不同的術語。 JSON只是數據格式,您可以在HTTP POST請求中發送JSON格式的消息。 – jedruniu

0

JSON基本上是一個JavaScript對象(JSON代表JavaScript Object Notation)的文本。

您可以通過AJAX調用從服務器獲取JSON數據。這是一個簡化的JavaScript示例,它會進行AJAX調用,然後將響應JSON分配給var myObj

var myObj, xmlhttp; 
xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
    myObj = JSON.parse(xmlhttp.responseText); 
    } 
}; 
xmlhttp.open("GET", "/example", true); 
xmlhttp.send(); 

服務器響應

{"name":"John", "surname":"Doe"} 

打印接收的數據以HTML元素「演示」的響應已被分配給myObj

document.getElementById("demo").innerHTML = myObj.name + " " + myObj.surname;