Jquery Ajax JSON和JSONP之間的高級對比測試

經過小編的反覆測試,得到結果一些結論,如下:

結論1:同域下,客戶端請求類型dataType無論是json還是jsonp,都可以接收服務器返回的json數據格式的數據。

結論2:不同域,就是我們說的跨域情況下,A:客戶端請求類型dataType爲json的話,客戶端直接報錯;B:客戶端請求類型dataType爲jsonp時,要求服務器返回的數據格式必須爲jsonp格式的數據。

 

接下來驗證小編以上的結論。

論證結論1:同域下,客戶端請求類型dataType無論是json還是jsonp,都可以接收服務器返回的json數據格式的數據。

前提條件:客戶端ajax和服務器接口需要在統一域名下。

 

一。客戶端請求類型dataType爲json,結果:客戶端成功接收來自服務器的json數據格式的數據。

 

二。客戶端請求類型dataType爲jsonp,結果:客戶端成功接收來自服務器的json數據格式的數據。

 

 

通過以上測試可以表明,結論1成立。

 

論證結論2:不同域,就是我們說的跨域情況下,A:客戶端請求類型dataType爲json的話,客戶端直接報錯;B:客戶端請求類型dataType爲jsonp時,要求服務器返回的數據格式必須爲jsonp格式的數據。

前提條件:客戶端ajax和服務器接口需要在不同的域名下

一。客戶端請求類型dataType爲json。結果:客戶端報錯

 

二。客戶端請求類型dataType爲jsonp,但服務器返回json格式數據。結果:服務器生成了json數據,但客戶端接收數據時發生異常。

 

三。客戶端請求類型dataType爲jsonp,同時服務器返回jsonp格式數據。結果:客戶端成功接收到來自服務器的JSONP格式的數據。

 

 

通過以上測試,證明結論2是正確的。 

目前小編還在想如何獲取到客戶端的請求類型dataType,,如果能拿到 dataType那麼我服務器就可以返回相應格式的數據了,這樣客戶端無論請求類型是JSON還是JSONP,服務器都可以返回對應格式的數據對吧。當然,也可以在客戶端傳參告訴服務器我的請求類型是什麼。但是這樣做不嚴謹。如果客戶端dataType不合法,那麼客戶端直接異常了,就不用增加服務器壓力啦,所以,我在想方設法拿到客戶端的dataType,這樣就非常嚴謹了。但是現在還在想這個如何獲取的問題,想到了的話我會更新我的博客的。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章