Javascript 否';访问控制允许原点';。我们应该如何解决?
我想使用JSONP 我在编写这样的代码时遇到了以下错误: 请求的资源上不存在“Access Control Allow Origin”标头。 因此,不允许访问源“” 有什么问题Javascript 否';访问控制允许原点';。我们应该如何解决?,javascript,java,ajax,api,Javascript,Java,Ajax,Api,我想使用JSONP 我在编写这样的代码时遇到了以下错误: 请求的资源上不存在“Access Control Allow Origin”标头。 因此,不允许访问源“” 有什么问题 function getAirLine(from , to , date) { var href = "https://api.flightstats.com/flex/schedules/rest/v1/json/from/"+from+"/to/"+to+"/departing/"+date+"?appId=[my
function getAirLine(from , to , date) {
var href = "https://api.flightstats.com/flex/schedules/rest/v1/json/from/"+from+"/to/"+to+"/departing/"+date+"?appId=[myKey1]&appKey=[myKey2]&extendedOptions=languageCode:ko";
$.ajax({
url : href,
dataType: 'jsonp',
success : function(datas) {
console.log(datas);
var dataSet = [];
for (var i = 0; i < datas.scheduledFlights.length; i++) {
for(var j = 0 ; j < datas.appendix.airlines.length ; j++){
if(datas.scheduledFlights[i].carrierFsCode == datas.appendix.airlines[j].fs){
airlines = datas.appendix.airlines[j].name;
}
}
var dataArr = [];
dataArr.push(datas.scheduledFlights[i].departureAirportFsCode);
dataArr.push(datas.scheduledFlights[i].departureTime.substring(11,16))
dataArr.push(datas.scheduledFlights[i].arrivalAirportFsCode)
dataArr.push(datas.scheduledFlights[i].arrivalTime.substring(11,16))
dataArr.push(datas.scheduledFlights[i].carrierFsCode + datas.scheduledFlights[i].flightNumber)
dataArr.push(airlines);
dataSet.push(dataArr);
}
console.log(dataSet);
$('#realTime').DataTable({
destroy: true,
data: dataSet,
columns: [
{ title: "From" },
{ title: "Depart.Time" },
{ title: "To" },
{ title: "Arrial.Time" },
{ title: "AirLine" },
{ title: "AirCode" }
]
});
},
error: function(datas) {
console.log('실패 - ', datas);
}
});
}
函数getAirLine(从,到,日期){
var href=”https://api.flightstats.com/flex/schedules/rest/v1/json/from/“+from+/to/“+to+/Desting/“+date+”?appId=[myKey1]&appKey=[myKey2]&extendedOptions=languageCode:ko”;
$.ajax({
url:href,
数据类型:“jsonp”,
成功:功能(数据){
控制台日志(数据);
var数据集=[];
对于(变量i=0;i我们应该如何解决呢?您必须在头文件中启用CORS,使用PHP、JAVA、C#等语言 php中的示例
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
header('Access-Control-Allow-Methods: GET, POST, PUT');
或者只使用JS。Idk它是如何工作的:D
这是一种有价值的方法
范例
我在codepen中有一个例子我很惊讶你在请求JSONP时会出现CORS错误-这毫无意义,因为JSONP永远不会导致CORS错误。上次发布此代码时,你声称会出现语法错误-你做了什么更改?跨源请求需要远程服务器的同意,通过主动支持JSON-P(涉及修改的响应)或CORS(涉及修改的头)。如果您试图访问的API没有提供这些,则无法直接从客户端发出请求。您的开场白
I want to use jsonp
表明您不理解前面问题中的注释。JSONP是服务器必须支持的东西。JSONP并不是因为您想绕过CORS,而是API如何帮助您绕过CORS,因为他们不知道或不想启用CORS,但仍然希望允许来自客户端的连接。最简单的解决方案是通过您的服务器代理请求,从而避免CORS,并按预期使用API。我不认为OP拥有flightstats.com
域,因此启用CORS不是一个选项。任何地方都可以通过作为实际请求的代理并在响应中包含CORS响应头来工作-这可以工作,但是,根据API的不同,它的成功可能有限——我知道我编写的任何不允许CORS的API也会阻止这种恶作剧——如果我不想通过客户端直接访问我的API,我会积极阻止它
const CORS = "https://cors-anywhere.herokuapp.com/";
const endpoint = CORS + "https://api.deezer.com/playlist/3314523926/tracks";