由于设置了自定义标头,ajax http会自动更改为http post

时间:2018-05-30 03:27:17

标签: ajax unauthorized restler

我有一个PHP API服务器,其设置如下:

php API server setting

我尝试通过ajax下面使用API​​服务器:

$.ajaxSetup({
contentType: "application/json; charset=utf-8",
//contentType: "text/plain",
dataType: "json",
beforeSend: function (xhr) {
    xhr.setRequestHeader("authorization", "Basic " + oAuthKey);
},
complete: function (xhr, status) {
    //
}});

        request = $.ajax({
            type: "GET",
            url: "http://www.example.com/testAPI/users/10004",
            async: false,
        });

        request.done(function (response, textStatus, jqXHR) {
            var msg = textStatus;
        });
        request.fail(function (jqXHR, textStatus, errorThrown) {
            var msg = errorThrown;
        });

当我在Fiddler中观看活动时,请求使用http选项而不是http get。我知道这是因为我正在设置xhr.setRequestHeader导致预检请求。由于API服务器需要身份验证,我别无选择,需要设置客户头。

当我尝试在Fiddler中运行上述请求时,它设法返回正确的json数据。但是当我在我的手机间隙应用程序中运行上述java脚本时,它会返回错误。

***在fiddler中,它会自动使用http get,这就是为什么没有错误。在我的应用程序中,它继续使用http选项。

0 个答案:

没有答案