[英]Handling JSONP data in jQuery/javascript
我有一個小的腳本,可以從服務器獲取一些JSONP數據。 我想訪問該響應數據中的各種值。 我不知道該怎么做。
看了一些文章后,我很困惑。 我從這個網站上JSON.stringify()
將創建JSON。 所以這意味着服務器在我的情況下不返回JSON?
因為如果我做data= JSON.parse(response);
alert()
不起作用。 另外,如果我將dataType
更改為json,也會從服務器收到一些身份驗證錯誤。 經過所有這些工作,我終於找到了如何提醒服務器響應的方法。
jQuery代碼 :
getData = function(){
var urlink = "https://192.168.150.3/loc/102?jsonpCallback=myCallback";
$.ajax({
type: "GET",
url: urlink,
dataType:"jsonp",
async: false,
});
}
myCallback = function(response){
data= JSON.stringify(response);
alert(data);
}
由於警報,我從上述腳本中獲得的輸出是這樣的:
{
"request":"/loc/102?jsonpCallback=myCallback&callback=jQuery21106404822329059243_1410515165630&_=1410515165633",
"response":
{
"id":102,
"name":"Location 1",
"child":[
"\/child\/CSJ01",
"\/child\/CSJ02",
],
"stats":{
"pow":{
"instant":8.39
},
"cTemp":{
"instant":22.76
},
"rTemp":{
},
"b":{
"instant":1
},
"m":{
"instant":1410513940
}
}
}
}
問 :我如何可以訪問的值id
, name
, child
,價值instant
在pow
,價值instant
在cTemp
等?
我找到了一些有關如何在JSON中獲取這些值的解決方案,但它們對我不起作用。 例如: 這個例子。 在大多數示例中,他們首先使用JSON.parse()
然后獲取特定的值,但是在我的情況下, JSON.parse()
什么也沒做,因此這些示例沒有太大幫助,或者也許我感到非常困惑和迷茫。 任何建議將不勝感激。
JSONP方法不是真正的Ajax,因此無法設置withCredentials
和自定義標頭 。 實際上,它使用響應來創建script
元素來處理CORS(因此,如果沒有目標顯式授權,則無法向網站中的其他網站發出請求)
JSON請求將創建如下腳本:
<script src="https://192.168.150.3/loc/102?jsonpCallback=myCallback">
</script>
然后返回的數據將是:
myCallback({...});
代替這個:
{...}
因此,您可以設置自定義標題。
現在,如果您想要憑據和標頭,只需使用json
,但是您的服務器將必須正確處理CORS。
在您的2個回調之間存在問題 。 您定義一個,而jquery定義另一個(b / c jquery附加callback
查詢),因此新創建的script
標記將僅調用一個方法,從而success
回調OR myCallback
但不能同時調用兩者,因此請嘗試以下操作:
getData = function(){
var urlink = "https://192.168.150.3/loc/102";
$.ajax({
type: "GET",
url: urlink,
dataType:"jsonp",
async: false,
success: function(data) {
data = JSON.stringify(response);
alert(data);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.