jsonp가 아닌 json을 반환하는 페이지에 ajax 호출 (IE 10 사용)을 시도하고 있지만 "401 - Unauthorized : 잘못된 자격 증명으로 인해 액세스가 거부되었습니다." 이 사이트는 IIS에서 "Windows 인증"을 사용하도록 설정되어 있지만 익명 인증을 사용하도록 사이트를 변경하면 호출이 작동합니다. 아래 코드는 제가 전화를 걸 때 사용하고있는 코드입니다. 내 전화로 무엇을 놓쳤는가 또는 내 웹 서버에서 무엇을 변경해야합니까? Windows 인증은 현재 Windows Auth에서 NTLM 인증을 사용하도록 설정되어 있습니다.ajax 호출 전달 보안
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="scripts/jquery-2.0.3.min.js"></script>
<script src="scripts/base64.js"></script>
<script type="text/javascript">
function QueryMyData() {
var postUrl = 'http://mydevpage/storage.ashx';
var data = 'AssetNumber=102405';
$.support.cors = true;
$.ajax({
type: "POST",
url: postUrl,
data: data,
dataType: 'json',
crossDomain: true,
cache: false,
username: "mydomain.net\\myuser",
password: "password",
beforeSend: function (xhr) {
xhr.withCredentials = true;
},
success: function (result) {
if (result) {
if (result.error)
alert(result.error);
else
alert(result.id);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Unknow Error:' + thrownError + ajaxOptions + xhr.status + " " + xhr.statusText);
}
});
}
QueryMyData();
</script>
</head>
<body>
</body>
</html>
잘 한 것은'이다 프록시 페이지 (ProxyHandler.ashx)는 '가능성이 잘못 "mydomain.net 참고 MyUser \"; 아마도 "mydomain.net \\ myuser"'이어야합니다. – Pointy
'username = "mydomain.net \ myuser", 그리고 다음 줄은 유효하지 않으며,'crossDomain'은 필요하지 않습니다.'$ .support.cors'는 필요하지 않습니다. scripts/jquery-2.0.3.min. js는 IE8에서 작동하지 않으며, CORS는 플러그인이없는 jQuery와 함께 IE8에서 작동하지 않습니다. 여기에는 너무 많은 잘못이 있습니다. –
또 다른 한가지는'username : "...",','username = "...",' –