我对javascript和ajax一点都不了解,但是我试图使用以下代码从EasyJet网站上读取一些航班信息:
$.ajax({
url: url,dataType: 'jsonp',dataFilter:function (data,type){
console.log('OK1');
console.log(type);
console.log(data);
},success: function (res,a,b) {
console.log('OK');
console.log(res);
},error:function (jqXHR,textStatus,errorThrown){
console.log("Failed");
console.log("Req " + jqXHR);
console.log("Text status:" + textStatus);
console.log("Error:" + errorThrown);
}
})
我添加了“ dataFilter”选项只是为了尝试看一下原始数据,但实际上并没有太大帮助。最初似乎执行了ajax请求(状态200),但总体失败。 在输出控制台中,我从dataFilter函数中获取了文本“ OK1”,以及数据类型的“ jsonp”和数据本身的“ undefined”。然后我从错误函数中获取“失败”文本,并且textStatus为“ parsererror”
OK1
jsonp
undefined
Failed
Req [object Object]
Text status:parsererror
Error:Error: jQuery35109158123428477556_1589547000902 was not called
“ URL”是:
"https://www.easyjet.com/ejavailability/api/v381/availability/query?AdditionalSeats=0&AdultSeats=1&ArrivalIata=PMO&ChildSeats=0&DepartureIata=LGW&IncludeAdminFees=true&IncludeFlexiFares=false&IncludeLowestFareSeats=true&IncludePrices=true&Infants=0&IsTransfer=false&Languagecode=EN&MaxDepartureDate=2020-09-03&MinDepartureDate=2020-09-01"
此网址通常(在浏览器的地址栏上键入时)以以下格式返回数据:
{
"AvailableFlights": [
{
"CarrierCode": "EZY","FlightNumber": 8243,"SegmentId": "20200901LGWPMO8243","DepartureIata": "LGW","ArrivalIata": "PMO","LocalDepartureTime": "2020-09-01T06:05:00","LocalArrivalTime": "2020-09-01T09:55:00","FlightFares": [
...
更多细节:
-
如果我将dataType更改为其他内容(即'json'或'text'),或者我将其取出,则GET无法正常工作(内容类型:application / json; charset = utf-8)
-
我已使用插件在浏览器中允许CORS。相同的例程在某些其他网站上也可以正常工作
有人可以建议一种方法来调试此问题吗?还是帮我找出错误?