我使用Postman扩展程序发出GET请求并获得响应,但是如果我使用jQuery发出相同的请求,则会收到一个典型错误:
XMLHttpRequest无法加载 http://www.rfen.es/publicacion/ranking/resultsBySwimmer.asp?l=020039535&t=&p=0&e=50L-I。所请求的资源上没有“ Access-Control-Allow-Origin”标头。
为什么会这样?
我的JavaScript代码很简单:
function getTiempo (dni, piscina, prueba) { $.ajax({ async: false, type: "GET", url: "http://www.rfen.es/publicacion/ranking/resultsBySwimmer.asp?l="+dni+"&t=&p="+piscina+"&e="+prueba }) .done(function (data) { console.log(data); return data; }); }
Postman扩展名也不在同一个域中,为什么会得到响应?
只是为了帮助寻求此特定问题的未来伙伴: 为什么POSTMAN有效,而我的jQuery不起作用!
实际上,答案很简单:允许使用Chrome扩展程序!
常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但是它们受同一原始策略的限制。扩展不受限制。扩展可以与源外的远程服务器通信,只要它首先请求跨域许可。
https://developer.chrome.com/extensions/xhr