Я использую ajax для создания веб-сайта, который может отслеживать расписание автобусов SEPTA. Однако моя сеть всегда получала ошибку при отправке запроса на URL-адрес (http://www3.septa.org/hackathon/TransitView/?route=ROUTE_NUAMBER&callback=?
).Как использовать ajax для динамического получения графика шины
Это функция, которую я использовал раньше:
function getSchedule(){
var route = $("#route");
var myURL = "http://www3.septa.org/hackathon/TransitView/?route=" + route.val() + "&callback=?";
$.ajax({
type: "GET",
url: myURL,
contentType: "application/json; charset-utf-8",
data: "()",
datatype: "jsonp",
success: function(json){
var myTable = "<tr><td>Vehicle ID</td> <td>Block ID</td> <td>Direction</td> <td>Destination</td> <td>Delay</td></tr>";
for(var i=0; i<json.bus.lenght; i++){
var vehicleNumber = json.bus[i].VehicleID;
var blockID = json.bus[i].BlockID;
var direction = json.bus[i].Direction;
var destination = json.bus[i].destination;
var offset_sec = json.bus[i].Offset_sec;
var offset_sec_n = parseInt(offset_sec);
if(offset_sec_n >= 120){
var delay = "Delay";
}
else{
var delay = "On Time";
}
myTalbe += "<tr><td>" + vehicleNumber + "</td><td>" + blockID + "</td><td>" + direction + "</td><td>" + destination + "</td><td>" + delay + "</td></tr>";
}
myTalbe = "<tb>" + myTable + "</tb>";
document.getElementById("schedule").innerHTML = myTable;
},
error: function(xhr, ajaxOptions, thrownError){
document.getElementById("schedule").innerHTML = "Error fetching "
+ myURL;
}
})
}
Он получил это Erorr сообщение:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Затем я получил модификацию предложение:
url: "http://ww3.septa.org/Hackathon/TransitView/",
data: {route: route_val}, //where route_val is whatever variable stores the route number. it can be named route, I just wanted to clarify the key vs value
jsonpCallback: "callback_func" //note that this is a string.
Но я не совсем понимаю, что такое CallBack_function
есть. Как я могу сделать мои работы в Интернете?
@Phil - Я не думаю, что это дубликат этого другого вопроса (не то, что они не имеют некоторые общие точки, конечно). Этот уже пытается использовать JSONP, и OP спрашивает о том, как использовать функцию обратного вызова. Это кажется более конкретным. – nnnnnn
Два опечатки ...1) Удалите 'data: '()'', поскольку вы уже указываете параметры запроса в URL-адресе, и «()« в любом случае ничего полезного. 2) Измените 'datatype' на' dataType' (капитал «T») – Phil
@nnnnnn, вы правы. Я предположил, что удаленный сайт не включен JSONP, но он – Phil