今天在react開發中使用了jsonp請求高的天氣,然後在開發者工具的XHR中怎麼也找不到請求,後來才發現jsonp請求不屬於XmlHttpRequest協議,所以network的XHR中不會顯示。
JSONP只能實現GET請求,由於同源策略的限制,XmlHttpRequest只允許請求當前源(域名、協議、端口)的資源。如果要進行跨域請求, 我們可以通過使用html的script標記來進行跨域請求,並在響應中返回要執行的script代碼,其中可以直接使用JSON傳遞 javascript對象。 這種跨域的通訊方式稱爲JSONP。
jsonp通過動態添加一個 script 標籤,而script標籤的src屬性是沒有跨域的限制的。這樣說來,這種跨域方式其實與ajax XmlHttpRequest協議無關了。