2012-05-18 92 views
2

我感到很困惑關於回調函數,而使用JSONP如何設置JSONP在客戶端和服務器端

這裏是JSON格式我的js文件 http://asla.dev.1over0.com/Guide/js/testjson.js

基本上就是這個JSON

{"x": 10, "y":15} 

這是我會檢索 這裏的數據是我的網站誰願意採取從生活跨域 JS文件數據的客戶端 爲了讓我檢索數據的js文件我必須包括JS文件 http://asla.dev.1over0.com/Guide/js/testjson.js腳本標記 內還聲明函數告訴頁面做什麼與此數據 這裏是代碼

function func(json){ 
alert(json.x) 
} 
<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js"></script> 

我想這是我感到困惑的部分;我到目前爲止閱讀,你幾乎只需添加一個查詢字符串的JS文件的末尾你的腳本標記內調用

<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js"></script> 

現在將

<script type="text/javascript" src="http://asla.dev.1over0.com/Guide/js/testjson.js?jsonp=func"></script> 

我的問題是... jsonp如何知道如何調用func函數? 這是否需要在後端設置? 如果是這樣,如何使用PHP或.NET 4.0 Framework進行設置。 我JSONP,如果我硬編碼工作,並調用JS文件內的FUNC功能,像這樣

func({ "x": 10, "y": 15}); 

但它沒有意義調用JS內的實際功能的文件嗎?

一如既往的任何輸入讚賞

回答

2

是的,你是正確的。真正的JSONP需要後端支持。通常,您要返回的JSON也是動態的。如果不是(每個人都有一塊數據),對一個函數名稱進行硬編碼(選擇比func更好的數據)是粗略而有效的。

如果你想要實際的JSONP,有多種方法可以在後端進行。看到這個微不足道的PHP examplethis question關於ASP.NET MVC上的JSONP

+0

謝謝馬特澄清和他們有幫助的鏈接 –