JQuery具有凭据的跨站点请求



正如标题所说,我正在尝试使用带有CORS的JQuery访问跨站点REST服务。问题出在凭据上。我从这个网站上得到了一些答案,但我的代码似乎没有发送任何验证数据,因为它要求用户并通过打开窗口。我会展示一些代码,让你看到它:

JQquery:

$.ajax({
    username: 'user',
    password: 'pass',
    url: url,
    dataType: 'json',
    data: {},
    crossDomain: true,
    xhrFields: {
          withCredentials: true
    },
    success: function(data) {},
    error: function(e){}
}); 

正如我所说,当AJAX请求发出时,会出现一个窗口,询问用户名和密码。这不应该出现,因为用户和通行证都在AJAX请求中!如果我放置用户并传递它,那么验证在目标服务器上运行良好。

谢谢你抽出时间!抱歉我的非母语英语写作=D。

对于跨域请求,将内容类型设置为application/x-www-form-urlencodedmultipart/form-datatext/plain以外的任何内容都将触发浏览器向服务器发送飞行前OPTIONS请求。此外,对于跨域脚本和跨域JSONP请求,error处理程序未被调用,因此您无法处理它。这是一个Ajax事件。

有关如何使用CORS进行跨域请求的详细信息和另一篇精彩文章,请参阅此处。

没有用户名和密码选项,您应该将其放入请求数据中,如下所示:

$.ajax({
    url: url,
    dataType: 'json',
    data: {
        username: 'user',
        password: 'pass'
    },
    crossDomain: true,
    xhrFields: {
          withCredentials: true
    },
    success: function(data) {},
    error: function(e){}
}); 

相关内容

  • 没有找到相关文章

最新更新