凭证在AJ中不起作用的AJAX或XHR

时间:2016-08-17 12:59:19

标签: jquery ajax internet-explorer cors

我目前在IE中遇到了一些CORS问题。我的谷歌搜索让我理解了IE + CORS =麻烦。

我有这段代码:

$.ajax({
  type: "GET",
  url: "URL",
  crossDomain: true,
  xhrFields: {
    withCredentials: true
  },
  success: function() {
    //Handle success
  },
  error: function(error){
    //Handle error
  }
});

适用于Chrome,Firefox和Vivaldi,但不适用于IE 11 ......

问题是:如果我输入错误或者我没有在Control Panel\User Accounts\Credential Manager Chrome下存储任何凭据,则Firefox和Vivaldi会触发一个对话框,我可以输入用户名和密码。在Internet Explorer中不是这种情况。但是,如果我在普通标签中打开相同的网址,则会出现对话框。

Authentication dialog

控制台打印出这两个错误: SEC7120: Origin "URL" not found in Access-Control-Allow-Origin header.SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.

正如标题所解释的那样:我确实尝试过使用常规的XMLHTTPRequest,结果完全相同。

因此我的问题是:

  • 是否可以通过JavaScript触发此对话框?
  • 是否可以通过JavaScript覆盖/更改凭据?如果可能的话,这不是一个巨大的安全问题吗?
  • 所有其他浏览器对IE没有的请求做了什么样的魔术?
  • 还有其他可能吗?

0 个答案:

没有答案