我有一个PHP API服务器,其设置如下:
我尝试通过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选项。