簡體   English   中英

AJAX調用從我的REST API中收到“ 400錯誤請求”響應

[英]AJAX call gets a “400 bad request” response from my REST API

AJAX調用從我的REST API中收到“ 400錯誤請求”響應。 這是JavaScript:

var client_id = 'xxxxxx';
var client_secret = 'yyyyyy';

var username = document.getElementById("inputUsername").value;
var password = document.getElementById("inputPassword").value;

var params = {
  client_id: client_id,
  client_secret: client_secret,
  grant_type: 'password',
  username: username,
  password: password
};

var successCallback = function(data, textStatus, jqXHR) {
  console.log('Success: ', textStatus);
};

var errorCallback = function(jqXHR, textStatus, errorThrown) {
  console.log('Error: ', jqXHR.status, textStatus, errorThrown);
};

var completeCallback = function(jqXHR, textStatus) {
  console.log('Complete: ', textStatus);
};

$.ajax({
  traditional: true,
  type: 'POST',
  url: 'http://127.0.0.1:8000/auth/token',
  contentType: 'application/json',
  dataType: 'json',
  data: params,
  success: successCallback,
  error: errorCallback,
  complete: completeCallback
});

我也嘗試使用以下方法設置數據,但得到了相同的響應:

var data = jQuery.param(params);

...對ajax調用進行相應的更改:

$.ajax({
  ...
  data: data,
  ...
});

我想要獲得與使用curl命令相同的結果:

curl -X POST "http://127.0.0.1:8000/auth/token" -d "client_id=xxxxxx&client_secret=yyyyyy&grant_type=password&username=aaaaaaa&password=bbbbbb"

我在AJAX調用中刪除了contentType參數,問題消失了:

$.ajax({
  traditional: true,
  type: 'POST',
  url: 'http://127.0.0.1:8000/auth/token',
  dataType: 'json',
  data: params,
  success: successCallback,
  error: errorCallback,
  complete: completeCallback
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM