我是Jquery和JqueryMobile的新手。我有点麻烦,并希望有人在这里帮助我。根据我的理解,在我实际执行“POST”之前,浏览器会执行“预检”OPTIONS调用。我的问题是OPTIONS调用失败了401.我用RESTclient和POSTMAN测试了api,它只适用于“POST”。
我还有一个类似的代码块,可以调用获取授权令牌(authtoken)。这个块和另一个块之间的唯一区别是
1)数据块。
2)BeforeSend阻止。
拨打电话的代码。
jQuery.support.cors = true;
$.ajax({
type: "POST",
url: "https://myurl/api/APIName",
beforeSend: function (request)
{
request.setRequestHeader('AuthToken', "This is where I'll insert my authtoken");
request.setRequestHeader('Content-Type', "application/json");
$.mobile.showPageLoadingMsg();
},
complete: function () {
$.mobile.hidePageLoadingMsg();
},
data: {FirstName: "Albert", LastName: "Einstein"},
dataType: 'json',
success: function (response) {
alert(response.APIStatus.ErrorCode);
},
error: function () {
alert(response.APIStatus.ErrorCode;
}
});
获取授权令牌的代码。这个块可以毫无问题地完成它的工作。
jQuery.support.cors = true;
$.ajax({
type: "POST",
url: "https://myurl/api/THEURLTOAUTHENTICAREME",
beforeSend: function () {
$.mobile.showPageLoadingMsg();
},
complete: function () {
$.mobile.hidePageLoadingMsg();
},
data: {username: "Nickolas", Password: "Te$l@"},
dataType: 'json',
success: function (response) {
if (response.AuthToken) {
alert(response.AuthToken);
}else {
alert(response.APIStatus.Message);
}
},
error: function () {
alert("Woops");
}
});
我不是那个在应用程序的api部分工作的人,但我确实知道正在处理它的人。 第一个块需要在标题中有一个“authtoken”,这就是为什么我在做request.setRequestHeader('AuthToken',“这是我将插入我的authtoken的地方”);我做错了吗?
点击Postman中的API:http://i.imgur.com/rEk3rAr.png
来自Chrome的控制台/检查器:http://i.imgur.com/vfSHqR4.png请帮帮我!