Почему работают только некоторые сайты при запуске синхронного JavaScript xmlhttprequests в данных: Text/HTML URI?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему работают только некоторые сайты при запуске синхронного JavaScript xmlhttprequests в данных: Text/HTML URI?

Сообщение Anonymous »

Краткое примечание перед началом: пока я обсуждаю ярлыки Apple, чтобы объяснить контекст моего вопроса, Это все еще проблема в Интернете/JavaScript . Единственное, что вам нужно знать, это то, что я не могу запустить асинхронный или обратный код JavaScript . Если вам интересно с подробностями точной реализации/ограничений кода JavaScript, сделанного в этом посте, см. Запуск JavaScript в ярлыках. Пример краткости, отображающего мою проблему (о которой рассказывается о том, о чем говорится в этом посте), можно найти здесь < /p>

Однажды у меня было какое-то намеренно ужасное и устаревшее Javascript, который я был вынужден использовать в качестве обходного увлечения для ограничения на приложение для автоматизации блокировки на моем iPhone, названном «короткометражные». Видите ли, бывают случаи, когда мне нужны автоматизации, которые я пишу для ярлыков, чтобы получить доступ к API или отправить некоторые вызовы API. У ярлыков есть внутренняя библиотека запросов API под названием «Получить содержимое URL», но погранично бесполезно, потому что она только возвращает тела реагирования. Поскольку мне понадобились дополнительные данные, такие как код состояния запроса, я сделал свою собственную замену запрашивания API API в JavaScript. Это то, как это выглядело в ярлыках: < /p>

Код: Выделить всё

data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://jsonplaceholder.typicode.com/users",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o));
< /code>
И вот он как более легкий фрагмент человека: < /p>


 "

o = {
error: "NetworkError",
message: "You are offline!",
stack: null
};

if (navigator.onLine) {
r = new XMLHttpRequest();
r.open("GET", "https://jsonplaceholder.typicode.com/users", false);

try {
r.send();
o = {
"Status": r.status,
"Response": r.responseText
}
} catch (e) {
o = {
error: e?.name ?? "UnknownError",
message: e?.message ?? String(e),
stack: e?.stack ?? null
};
}
};
document.write(JSON.stringify(o));
< /code>
< /div>
< /div>
< /p>
Я бы затем извлекал текст с веб -страницы JavaScript, а затем перешел к моей жизни. Тем не менее, я обнаружил, что некоторые URL -адреса проходили в это только ровное, не работают. Например, возьмите https://zenquotes.io/api/random 
, запрос REST API получить, который должен вернуть случайную цитату:






< /div>
< /div>
< /p>
и вот его простые URL-эквивалент: < /p>
data:text/html,o={error:"NetworkError",message:"You%20are%20offline!",stack:null};if(navigator.onLine){r=new%20XMLHttpRequest();r.open("GET","https://zenquotes.io/api/random",false);try{r.send();o={"Status":r.status,"Response":r.responseText}}catch(e){o={error:e?.name??"UnknownError",message:e?.message??String(e),stack:e?.stack??null};}};document.write(JSON.stringify(o));
< /code>
На мобильном устройстве все, что он делает, - это смутная ошибка "Networkerr", объясняющая, что она не может подключиться к Интернету. К счастью, я получаю более словесную ошибку, когда запускаю код на своем компьютере, говоря, что он «не загрузил ». Понятия не имею, что это значит, поч ... tprequests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»