使用NO-CORS重定向获取API - 无法获取任何响应标头

时间:2017-09-26 04:11:36

标签: javascript php ajax fetch fetch-api

我已经阅读了十几页,解释,问题,我有点沮丧。没有人直接谈论这种情况..所以这就是我所拥有的......我的洪流跟踪器http://www.tribalmixes.com/有一个脚本可以扫描我的电台https://www.tm-radio.com/,查看今天播出的新剧集,并分享这些剧集作为种子。这个游戏自2006年以来一直在发生。该脚本检查一些页面的响应标题,并决定是否下载为mp3或在html响应的情况下跳过。

所以最近我将无线电转换为https,现在请求响应链中有301重定向。我知道还有其他的解决方案,但我决定首先尝试获取API ..回到2006-2007我真的很自豪用AJAX重新制作我的洪流跟踪器,只是由于丢失了适当的搜索引擎索引和一堆用户不喜欢它..无论如何,现在我正在尝试在重制无线电网站上使用新的新技术。而且由于AJAX不再那么花哨,所以使用Fetch API。所以再一次,我试图在已经存在的机制上用FETCH替换AJAX而不重建机制。

但网站明显不同,所以我必须做NO-CORS请求,因为脚本在tribalmixes.com上。虽然站点在同一台服务器上。所以当然简单的文件夹检查可以工作,但试图在网站分离时展望未来。另一种解决方案是对本地php脚本运行一个简单的ajax请求,该脚本将CURL URL并返回标题。但为什么不抓? =)

所以这就是我到目前为止所拥有的JS

var myHeaders = new Headers();
var myInit = { method: 'GET',
  headers: myHeaders,
  mode: 'no-cors',
  redirect: 'follow',
  cache: 'default' };
fetch(turl, myInit).then(function(response) {
  const rtype = response.headers.get("Content-Type");
  console.log(rtype);
  for (var pair of response.headers.entries()) {
     console.log(pair[0]+ ': '+ pair[1]);
  }
  return (response);
}).then(function(text) {
  console.log(text);
});         
//for obvious reasons i am not posting the url.. 

我得到的回应是存在的,但几乎是空的。没错。但由于某种原因,“重定向”说“假”...我认为不透明只显示NO-CORS重定向发生时,不是吗?

Response {type: "opaque", url: "", redirected: false, status: 0, ok: false, …}
body: (...)
bodyUsed: false
headers: Headers
  __proto__: Headers
ok: false
redirected: false
status: 0
statusText: ""
type: "opaque"
url: ""
__proto__: Response
}

所以我的问题是:我是否正确地认为这是正确的方法,并且这是可以撤销的?可以或不可以在不透明的响应上获取API传递响应头。 TBH我得到的是 - 响应是不透明的。其他一切都是空的......每个人都说他们至少得到了一些东西,但我只想要一个无人看守的标题内容类型,无论我做什么都无法得到它......目前不可能吗?这一切都在努力建立一个像keepvid这样令人敬畏的mp3转换器..但是从未经历过开发阶段,

在我开始向无线电服务器响应添加其他标头之前,我想要的只是看到1个简单的标题..

请帮忙!在这里失去理智...

0 个答案:

没有答案