如何在移动应用程序中使用 IBM Cast Iron API。 API 具有用户名和密码等身份验证(需要 401 授权)。 这里的问题是如何使用 Ajax 调用在 javascript 中对 API进行身份验证。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function () {
$("#bSubmit").click(function () {
alert("Button Clicked");
var xmlString;
var username = 'myusername';
var password = 'mypassword';
$.ajax({
url: 'MYURL',
crossDomain: true,
headers: {
"Authorization": "Basic " + btoa(username + ":" + password)
},
type: "POST", //This is what you should chage
dataType: "xml",
contentType: "application/xml; charset=utf-8",
}).done(function (response) {
alert("Sucess"+response);
xmlString = (new XMLSerializer()).serializeToString(response);
$("#displayout").html(xmlString);
}).fail(function (request, textStatus, errorThrown) {
alert("wrong");
alert(textStatus + " : " + errorThrown.toString());
});
});
});
</script>
</head>
<body>
<input type="text" name="1" id="txt1">
<input type="submit" name="b" value="Submit" id="bSubmit">
<div id="displayout">
</div>
</body>
我在 Firefox 和 IE 中添加了 CORS 过滤器。这在 IE 中运行良好。但它不适用于 Firefox 和 Chrome。
在 IE 中:我通过以下链接更改了设置 它对我有用。
在 Firefox 控制台中,它显示如下:
跨域请求被阻止:同源策略不允许在https://MYURL读取远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。
在 Chrome 控制台中,它显示如下:
选项https://MYURL 401(需要授权)
XMLHttpRequest 无法加载https://MYURL。无效的 HTTP 状态代码 401
你能帮帮我吗?