繁体   English   中英

如何将json数据头发送到api

[英]how to send json data headers to api

我正在尝试通过我的网络应用程序发送短信,我从短信供应商那里购买了批量短信,试图与他们的 api 互动。提前感谢您的帮助

我通过邮递员发布数据并且它有效(发布方法,标题部分),当我将数据从我的网页发布到他们的 URL 时它不起作用,

$(document).ready(function() {
 // Add event listener for opening and closing details
 $('#testbut').on('click', function() {
  var Username = 'xxxxxx';
  var password = 'xxxxx';
  var language = '1';
  var sender = 'RitaFoods';
  var Mobile = '2011xxxxx';
  var message = 'hello from the other side';
  $.ajax({
   url: "https://smsmisr.com/api/webapi/?",
   method: "POST",
   "headers",
   data: {
    Username: Username,
    password: password,
    language: language,
    sender: sender,
    Mobile: Mobile,
    message: message
   },
   dataType: "JSON",
   success: function(data) {
    alert("done");
    alert(JSON.stringify(data));;
   }
  })
 });
});

当我将此数据发送到我网站上的另一个页面时,我没有问题地收到它,并且我用参数响应并提醒它,当我发送到 api url 时它没有响应,可能是因为我需要在标题部分发送但我不知道该怎么做。

您可以使用beforeSend函数设置标题

$.ajax({
  url: "https://smsmisr.com/api/webapi/?",
  method: "POST",
  data: {
    Username: Username,
    password: password,
    language: language,
    sender: sender,
    Mobile: Mobile,
    message: message
  },
  beforeSend: function(xhr){xhr.setRequestHeader('My-Custom-Header', 'My-Value');},
  dataType: "JSON",
  success: function (data) {
    alert("done");
    alert(JSON.stringify(data));;
  }
});

或通过headers字段

$.ajax({
  url: "https://smsmisr.com/api/webapi/?",
  method: "POST", "headers",
  data: {
    Username: Username,
    password: password,
    language: language,
    sender: sender,
    Mobile: Mobile,
    message: message
  },
  headers: {
    'My-Custom-Header': 'My-Value',
  },
  dataType: "JSON",
  success: function (data) {
    alert("done");
    alert(JSON.stringify(data));;
  }
});

查看API 文档

它说“在标题中而不是在正文中发布”,但作为对您需要做什么的描述,这是错误的。

看看例子。 它们表明数据被编码在URL查询字符串中 在 HTTP 术语中,这意味着它位于起始行,而不是标头。


因此,您需要执行以下操作:

  var url = new URL("https://smsmisr.com/api/webapi/?");
  url.searchParams.append("Username", Username);
  url.searchParams.append("Password", password);
  // etc etc

  $.ajax({
   url: url,
   method: "POST",
   dataType: "JSON",
   success: function(data) {
    alert("done");
    alert(JSON.stringify(data));;
   }
  })

如果您需要与旧浏览器的兼容性,请参阅此答案


请注意,您可能会遇到此问题中描述的问题

尝试添加你的ajax

内容类型:“应用程序/json”

$.ajax({
        type: "POST",
        url: **your URL**,
        data: **your DATA**,
        contentType: "application/json",
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM