javascript - AJAX 调用从我的 REST API 获取 "400 bad request"响应

标签 javascript jquery ajax rest

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
});

关于javascript - AJAX 调用从我的 REST API 获取 "400 bad request"响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35900226/

相关文章:

javascript - 如何在 Laravel 中使用 app.js 和 app.css 修复错误 404?

javascript - tinymce 不会使用动态加载的 html 再次启动编辑器

javascript - RequireJS 并不总是加载模块

php - 如何使用 facebook WebDriver 获取 AJAX 页面的当前 HTML 源代码?

javascript - 如何使文本框可点击

php - 验证 $_REQUEST 内容是否为 int

java - Jquery函数将java数据转换为json

javascript - 尝试禁用浏览器的后退按钮

jquery switch divs 按钮点击不起作用

带句点的 jQuery 属性选择器