jQuery跨域POST shenanigans

FLX*_*FLX 16 javascript jquery post json cross-domain

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

我已经尝试了两天来使用jQuery,但是我遇到了问题,因为它是跨域的.我怎么能做到这一点?

错误信息:

Request Method:OPTIONS
Status Code:405 METHOD NOT ALLOWED
Run Code Online (Sandbox Code Playgroud)

代码到现在为止:

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);
    }
})
Run Code Online (Sandbox Code Playgroud)

总结一下:

  • API仅接受授权的POST
  • API需要json作为表单数据,例如:{"username":"myusername","password":"mypassword"}
  • js从不同的域运行,导致跨域错误

非常感谢您的帮助 :)

Mat*_*sca 15

你应该遵循不同的模式.您的本地JS将对本地URL执行ajax发布,该URL将接受带有json数据的POST方法.

此时,您的服务器代码将使用适当的数据向远程服务器执行HTTP POST,获取响应,并将其发送回调用的js.