今天在react开发中使用了jsonp请求高的天气,然后在开发者工具的XHR中怎么也找不到请求,后来才发现jsonp请求不属于XmlHttpRequest协议,所以network的XHR中不会显示。
JSONP只能实现GET请求,由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。如果要进行跨域请求, 我们可以通过使用html的script标记来进行跨域请求,并在响应中返回要执行的script代码,其中可以直接使用JSON传递 javascript对象。 这种跨域的通讯方式称为JSONP。
jsonp通过动态添加一个 script 标签,而script标签的src属性是没有跨域的限制的。这样说来,这种跨域方式其实与ajax XmlHttpRequest协议无关了。