XMLHttpRequest通过,但我的Jquery Ajax调用未通过此调用

时间:2018-12-13 01:34:50

标签: javascript jquery ajax

我不知道为什么第一个电话通过了,而第二个电话却出现了400错误!

// passes with a 200 success
var data = new FormData();
data.append('file', document.querySelector('#file-box-front').files[0]);
data.append('purpose', 'identity_document');

var oReq = new XMLHttpRequest();
oReq.open("POST", 'https://uploads.stripe.com/v1/files', true);

oReq.setRequestHeader('Authorization', 'Bearer ' + scope.apiKey);

oReq.onload = function(oEvent) {
  if (oReq.status == 200) {
    document.querySelector('#label-results').textContent = 'Success!';
  } else {
    document.querySelector('#label-results').textContent = 'Failure: ' + oReq.status;
  }
  document.querySelector('#upload-results').textContent = oReq.response;
}
oReq.send(data);


// jquery call below fails with 400
var options = {
  url: 'https://uploads.stripe.com/v1/files',
  type: "post",
  headers: {
    "Authorization": "Bearer " + scope.apiKey
  },
  processData: false,
  data: data
};

$.ajax(options)
  .done(function(response) {
    var i = 0;
  })
  .always(function() {

  })
  .fail(function(jqXHR, textStatus) {
    yb.base.eventAlert("Error submitting image. Please contact  help desk.", "error");
  });

1 个答案:

答案 0 :(得分:1)

您的jQuery调用缺少contentType选项

var options = {
  url: 'https://uploads.stripe.com/v1/files',
  type: "post",
  headers: {
    "Authorization": "Bearer " + scope.apiKey
  },
  processData: false,
  contentType: false, // prevents jQuery from setting the default content type
  data: data
};