Как получить данные 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 является стандартным, правильно продуманным решением проблемы и имеет гораздо меньше ограничений.

Другие вопросы по тегам