我为POST / OPTIONS调用获得了401(未授权)和无效的HTTP状态代码401。适用于POSTMAN / RESTCLIENT

时间:2013-11-15 22:30:38

标签: jquery-mobile

我是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

请帮帮我!

0 个答案:

没有答案