DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> Jquery跨域獲得Json時invalid label錯誤的解決辦法
Jquery跨域獲得Json時invalid label錯誤的解決辦法
編輯:JQuery特效代碼     
最後,仔細安靜下來,細讀 json 官方文檔後發現這麼一段:

JSON數據是一種能很方便通過JavaScript解析的結構化數據。如果獲取的數據文件存放在遠程服務器上(域名不同,也就是跨域獲取數據),則需要使用jsonp類型。使用這種類型的話,會創建一個查詢字符串參數 callback=? ,這個參數會加在請求的URL後面。服務器端應當在JSON數據前加上回調函數名,以便完成一個有效的JSONP請求。如果要指定回調函數的參數名來取代默認的callback,可以通過設置$.ajax()的jsonp參數。

其實jquery跨域的原理是通過外鏈 <script> 來實現的,然後在通過回調函數加上回調函數的參數來實現真正的跨域

Jquery 在每次跨域發送請求時都會有callback這個參數,其實這個參數的值就是回調函數名稱,所以,服務器端在發送json數據時,應該把這個參數放到前面,這個參數的值往往是隨機生成的,如:jsonp1294734708682,同時也可以通過 $.ajax 方法設置 callback 方法的名稱。明白了原理後,服務器端應該這樣發送數據:

string message = "jsonp1294734708682({\"userid\":0,\"username\":\"null\"})";

這樣,json 數據 {\"userid\":0,\"username\":\"null\"} 就作為了 jsonp1294734708682 回調函數的一個參數

跨域獲得Json時invalid label的解決辦法:

服務器端在輸出 Json 數據時,前面加上 callback 參數的值,如:jsonp1294734708682({\"userid\":0,\"username\":\"null\"})
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved