jquery 即使我通过了基本身份验证,也会显示输入用户名和密码的警报

5lhxktic  于 2022-11-29  发布在  jQuery
关注(0)|答案(1)|浏览(123)

我正在尝试使用订单的api在razorpay生成订单id。

我的密码:-

此代码位于head的脚本中:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

下面的代码位于脚本的主体中

var jsonData = {
  "currency": "INR",
  "amount": "10000",
};

$.ajax({
  type: 'POST',
  dataType: 'jsonp',
  url: url,
  data: { json: JSON.stringify(jsonData) },
  xhrFields: {
    withCredentials: true
  },
  beforeSend: function (xhr) {
    xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
  },
  contentType: "application/json; charset=utf-8",
  success: function (response) {
    alert("done");
  },
  error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    jsonValue = jQuery.parseJSON(xhr.responseText);
    console.log(xhr.Message);
  },
});

上述代码连续显示状态代码为0的警报框。

icomxhvb

icomxhvb1#

我尝试重现您的输出[状态为0的警报],并且我能够做到
然后我开始寻找一个解决方案,我发现this answer是一个很好的开始。按照链接,我发现this answerthis other非常有用。设置dataType: 'jsonp'改变了游戏
最后给我一个200回提醒的片段如下:

var jsonData = {
    "text1" : "textData1",
    "number": 10
};

$.ajax({
  type: 'POST',
  dataType: 'jsonp',
  url: 'https://your.endpoint',
  //crossDomain: true,
  data : { json: JSON.stringify(jsonData) },
  contentType: "application/javascript; charset=utf-8",
  success: function (response){
    alert("done");
  },
  error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    console.log(thrownError.Message);
  },
});

尽管我们成功触发了error,但您可能还想查看一下this answer
我还看了一下RazorPay的API(我从来没有用过它们)。关于创建订单,我看到amount是作为整数而不是字符串传递的。然后我根据this answer修改了脚本。顺便说一下,我猜你需要把它乘以100,因为金额是用“货币单位”表示的[例如,对于295卢比的金额,输入29500”]

相关问题