Как получить данные jsonp со статусом "401 Unauthorize"?
Как получить данные jsonp со статусом "401 Unauthorize".
Это мой код:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Script</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</head>
<body>
<h1>Script</h1>
<pre id="output">Loading…</pre>
<script>
function getcode(data) {
var data = JSON.stringify(data, undefined, 2);
document.getElementById('output').innerHTML = data;
}
</script>
<script src="https://localhost:7783/track?callback=getcode"></script>
</body>
</html>
Этот код отлично работает, когда я пытаюсь получить данные со статусом "HTTP 200".
Пример ответа 401:
HTTP/1.1 401 Authorization Required
Date: Sun, 08 Nov 2015 10:43:21 GMT
getcode({"track":"4632874-423423-42342343123-32132131-432-43242-4324"})
Итак, вопрос: как получить данные jsonp, когда статус 401 не авторизован? Я хочу получить этот "getcode({"track":"4632874-423423-42342343123-32132131-432-43242-4324"})"?
Спасибо за помощь.
1 ответ
Ты не можешь
Браузеры не выполняют сценарии, когда они доставляются со статусом ошибки HTTP.
Вместо этого переключитесь на XMLHttpRequest (и CORS, если вам нужна поддержка кросс-происхождения). JSONP - это хак, введенный для обхода той же политики происхождения, и, поскольку он является хаком, имеет много ограничений. CORS является стандартным, правильно продуманным решением проблемы и имеет гораздо меньше ограничений.