一尘不染

jQuery跨域POST恶作剧

json

我正在尝试向API进行身份验证,该API仅允许您使用带有JSON的POST作为表单数据进行身份验证,格式为{“ username”:“
myusername”,“ password”:“ mypassword”}。

我已经尝试了两天,以使其与jQuery一起使用,但是由于它是跨域的,所以我遇到了问题。我该怎么做?

错误信息:

Request Method:OPTIONS
Status Code:405 METHOD NOT ALLOWED

到目前为止的代码:

var username = "myusername";
var password = "mypass"
var authurl = "https://myurl";

$.ajax
({
    type: "POST",
    url: authurl,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    async: false,
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
    success: function (result) {
        $('#json').html(result);
    }
})

总结一下:

  • API仅接受POST进行身份验证
  • API需要使用json作为表单数据,例如:{“ username”:“ myusername”,“ password”:“ mypassword”}
  • js来自其他域,导致跨域错误

非常感谢您的帮助 :)


阅读 200

收藏
2020-07-27

共1个答案

一尘不染

您应该遵循不同的模式。您的本地JS会将ajax发布到本地URL,该URL将接受JSON数据的POST方法。

此时,您的服务器代码将对适当的数据执行HTTP POST到远程服务器,获取响应,然后将其发送回调用js。

2020-07-27