Я пытаюсь заставить JSONP работать с сервером, работающим на Arduino. Это мой JS код:Проблема с обратным вызовом JSONP
window.onload = init;
function init()
{
//alert("Test");
SendRequest();
}
function SendRequest()
{
alert("Sending request");
var url = "http://192.168.1.177";
var request = new XMLHttpRequest();
request.open("GET", url);
request.error = function(e) {
alert("ERROR");
};
request.send(null);
}
function ArduinoJSONP()
{
alert("Callback received!!!");
}
Функция обратного вызова никогда не достигается.
Но если я просто направить свой браузер непосредственно к Arduino IP я вижу следующее отображается в браузере:
ArduinoJSONP({"data": 12345})
Таким образом, кажется, что сервер посылает ответ с правильным форматом JSONP, но как-то функция не вызывается. Есть ли что-то еще, что мне нужно для JS для вызова функции? Я даже попытался переместить функцию в тело HTML, но это тоже не помогло.
спасибо.
спасибо. Я новичок в этом, поэтому, пожалуйста, несите меня о деталях. Ты прав. JSONP не является XHR, но сервер Arduino не может обрабатывать запрос JSONP, поэтому я использую XHR, чтобы установить соединение с сервером Arduino. Сервер увидит соединение с клиентом и ответит с помощью JSONP. – madu
Хорошо, см. Мой обновленный ответ, с базовой реализацией. –
Спасибо. Это сработало! Я не знал о необходимости элемента «script». Будет больше читать. Большое спасибо. – madu