正如tittle所说,我正在尝试使用带有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请求时,会出现一个询问用户名和密码的窗口。这个应该没有出现,因为用户和pass都在AJAX请求中!如果我放置用户并传递它的工作原理,那么validaton在目标服务器上工作正常。
感谢您的时间!抱歉,我的非英语母语写作= D。
答案 0 :(得分:1)
对于跨域请求,将内容类型设置为application/x-www-form-urlencoded
,multipart/form-data
或text/plain
以外的任何内容都会触发浏览器发送预检OPTIONS
请求服务器。
对于跨域脚本和跨域JSONP请求,error
处理程序未被称为,因此您将无法处理它。这是Ajax Event。
答案 1 :(得分:0)
没有用户名和密码选项,您应该将其放在请求数据中,如下所示:
$.ajax({
url: url,
dataType: 'json',
data: {
username: 'user',
password: 'pass'
},
crossDomain: true,
xhrFields: {
withCredentials: true
},
success: function(data) {},
error: function(e){}
});