在移动应用程序中,我使用jQuery $ .ajax为Cordova构建带有自定义HTTP标头的请求到后端,在iPhone 6(iOS 9.2)设备上,自定义标头不会发送到后端。在Android和iPhone 4(iOS 7.3)设备上,标头正在完美发送。后端的CORS配置为接受所有来源,所有方法和所有标题。
我使用以下代码发送请求:
$.ajax({
type: "GET",
url: "https://mybackend.example.com/api/resource",
data: myData,
beforeSend: function(request) {
request.setRequestHeader("Authorization", "Bearer " + loginToken);
request.setRequestHeader("X-My-Custom-Header", myHeader);
},
dataType: "json"
}).success(function(data, code, xhr) {
// Do something on success
}).error(function(qXHR, textStatus, errorThrown) {
// Do something on error
});
没有预检请求。请求成功,但它发生在iOS 9.2设备上,自定义标题X-My-Custom-Header只是省略。
我尝试使用标题而不是 beforeSend ,但没有运气。