jQuery能夠從服務器返回的X-JSON HTTP頭中讀取JSON數據嗎?我一直在尋找jQuery文檔,但我可以找到的所有示例都使用在請求正文中返回的JSON而不是標頭。jQuery是否支持從X-JSON HTTP頭文件讀取JSON?
1
A
回答
5
是的,你需要調用XMLHttpRequest
對象的getResponseHeader
method,和做手工的JSON反序列化:
function getHeaderJSON(xhr) {
var json;
try { json = xhr.getResponseHeader('X-Json') }
catch(e) {}
if (json) {
var data = eval('(' + json + ')'); // or JSON.parse or whatever you like
return data
}
}
注意,try
/catch
是針對Firefox的一些版本,如果標題是哪裏不存在錯誤拋出。我不記得哪個版本受到影響。
你有幾個方式來獲得jQuery中的XMLHttpRequest
對象的引用:
勾入
complete
回調Ajax請求的,而不是預期的success
回調(jQuery是一種WRT不一致的,以在傳遞什麼ARGS什麼順序什麼的回調函數或全局AJAX觸發):$.ajax({ // ... complete: function(xhr) { var data = getHeaderJSON(xhr); // do with data as you wish } })
Alternat您可以通過Closure保存對撥打
.ajax
/.get
/.post
等返回給您的XMLHttpRequest
對象的引用。這使您可以使用它,你選擇的任何回調(也就是爲此事success
或complete
,或error
)內:var xhr = $.ajax({ // ... success: function() { var data = getHeaderJSON(xhr); // access xhr var via closure // do with data as you wish } });
那麼直接回答你的標題:沒有,jQuery的顯然不支持此開箱即用的。
+0
我不知道OOTB是什麼意思。我擡起頭:「開箱即用」。一個變體是「出於藍色」。 – nalply
1
as of 1.4 jQuery的成功:回調接收XMLHttpRequest - (data,textStatus,XMLHttpRequest)。因此,您不必再使用complete:callback,如上所述。
希望我可以回覆上一個答案,而不是添加新的答案。
相關問題
- 1. Chrome是否支持HTTP Vary標頭
- 2. PHP是否從頭文件讀取cookie?
- 3. 是否支持從/分隔文件讀取/寫入hexfloats?
- 4. 從Json文件讀取JQuery
- 5. 從http響應頭識別瀏覽器是否支持gzip
- 6. 網絡爬蟲是否讀取HTTP頭文件?
- 7. jQuery是否內置了JSON支持?
- 8. RequireJS是否支持HTTP/2?
- 9. CoreBluetooth框架是否支持Blob讀取?
- 10. restclient是否支持json-patch?
- 11. jibx是否支持json?
- 12. 使用jquery從json文件讀取值
- 13. AngularJS讀取JSON文件$ http服務
- 14. .net 4中是否支持重複的http頭名稱?
- 15. Android是否支持jQuery?
- 16. GWT是否支持Jquery?
- 17. Uploadify是否支持jQuery 1.4?
- 18. WP8是否支持從媒體庫中讀取視頻?
- 19. Intuit REST API是否支持從QBO讀取銀行交易?
- 20. 是否可以通過HTML5/jQuery從視頻獲取HTTP標頭?
- 21. 讀取HTTP POST頭
- 22. 從JSON文件中讀取
- 23. C# - 從JSON文件讀取
- 24. 從python讀取json文件
- 25. 從R讀取JSON文件
- 26. curl:從文件中讀取頭文件
- 27. Visual Studio 2010是否支持jQuery?
- 28. Joomla是否支持DELETE http請求
- 29. Vue.JS是否支持AJAX http調用?
- 30. Alamofire是否支持HTTP流水線?
只是好奇,你爲什麼要使用頭來傳輸數據? – gahooa
@gahooa:原型鼓勵它,因爲它比多部分響應「更容易」:http://devcentral.f5.com/weblogs/macvittie/archive/2009/04/07/ruby-developers-ignore-security-risks-claim -x-json-header-lsquonothing-seriousrsquo.aspx和http://www.ruby-forum.com/topic/94728揭示了這種情況。 –