2012-08-22 89 views
0

當我將URI放入Web瀏覽器時,我的服務器輸出這個JSON。我的客戶端應用程序將使用JSONP獲取此JSON,因爲它訪問了外部域。使用JSONP而不打包響應

{ 
"is_execution_successful":true, 
"data": "something" 
} 

有沒有辦法做一個JSONP 沒有包裝這樣的響應

echo $_GET['json_callback']. '('. json_encode($rtnjsonobj) . ')'; 

我沒有權限編輯服務器輸出。如何使用AJAX/JQuery獲取JSON?

參考我讀:http://remysharp.com/2007/10/08/what-is-jsonp/

回答

3

JSONP有技術上無關JSON。這只是javascript代碼。

因此,如果響應是有效的JSON,當您將其作爲JavaScript(JSONP)運行時,它將不會執行任何有用的操作。特別是在這種情況下,當以JavaScript執行時,JSON會導致語法錯誤。

您可以跨域Ajax請求的資源,但是這僅僅是可能的,如果服務器發送這個頭:

Access-Control-Allow-Origin: * 

星可以用你當然具體產地所取代,這不是'必須是通配符

+0

我還不清楚。你的意思是我無法得到我的應用程序的迴應?它實際上是從PHP站點獲取JSON的Windows 8應用程序)。 – Emerald214

+0

我不關於Windows 8應用程序,但如果它們受到相同原產地策略的限制,它會很奇怪......你剛試過一個直接的ajax請求嗎? – Esailija

+0

我無法使用直接ajax請求獲取該JSON。它總是返回空。我認爲這不是一個域。 – Emerald214