我想從遠程服務器調用JSON數據,但服務器不返回有效的JSONP形成的數據,只有有效的JSON數據。 (驗證器確認)沒有JSONP的getJSON遠程請求 - 服務器
如果我使getJSON請求(與&回調=?),我得到有效的JSON返回,但它沒有觸發回調函數,因爲它不是有效的JSONP。
有什麼好方法可以訪問返回的JSON數據嗎?
我想從遠程服務器調用JSON數據,但服務器不返回有效的JSONP形成的數據,只有有效的JSON數據。 (驗證器確認)沒有JSONP的getJSON遠程請求 - 服務器
如果我使getJSON請求(與&回調=?),我得到有效的JSON返回,但它沒有觸發回調函數,因爲它不是有效的JSONP。
有什麼好方法可以訪問返回的JSON數據嗎?
不,它必須是JSONP數據,因爲整個事情是如何工作的,它基本上包括一個JavaScript文件,通過創建一個<script>
標籤...並且該響應必須是有效的JavaScript,一個對象字面量(本身)是無效的JavaScript。
想想另一種方式:如果我們可能從從遠程服務器獲取JSON,爲什麼JSONP存在? :)
那麼首先,如果您的服務器獲取JSON不支持JSONP,那麼您將不得不使用代理。如果它確實支持JSONP,則應該像下面的示例那樣格式化您的請求。當你不指定在$ .getJSON回調(?...... &回調=),那麼你的要求是這樣的:
http://someurl?callback=123489234982
與它的結束有些可笑號碼,它使你的生活痛苦。所以,你應該指定一個回調和格式化你的代碼如下所示:
<script>
$.getJSON("your url?callback=callbackName", ....);
function callbackName { do what you want with the json in here }
</script>
如果不工作,那麼您的服務器不支持JSONP :(這裏是你可以使用一個PHP代理鏈接是相當不錯的,有大量的文件。
是的,它吸收。我在與Viddler API(瀏覽器端)相同的問題。它發送JSON數據傳回,但不是在腳本JSON -P接口。
因此,你有兩個操作tions:
祝你好運!
您是否在控制遠程服務器?您是否無法通過服務器腳本調用遠程服務器? – Philar 2010-11-23 18:06:22
如果您還可以請提及遠程服務器的網址 – Philar 2010-11-23 18:07:29