【问题标题】:send json as data in ajax and get response将 json 作为 ajax 中的数据发送并获得响应
【发布时间】:2018-03-27 05:21:47
【问题描述】:

我想以 json 格式向 API 请求并获得响应,我用邮递员尝试过,我得到了响应:

对 API 的 json 请求:

{
"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"
}

回复说我在邮递员那里没问题

{
"status": 200,
"result": {
    "winner": "s",
    "options": {
        "1": "mar",
        "2": "feb",
        "3": "jan",
        "4": "aug"
    },
    "question": "how old are u?",
    "answer": 3
}

}

我的问题是我想发送 ajax 请求并获得响应。我尝试此代码但没有得到任何响应?

var data = {"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"};
$.ajax({
type:'post',
dataType:'json',
url:'http://207.154.251.233:8039/app_dev.php/question/get',
data:JSON.stringify(data),
success:(function (response) {
alert(response);
})
})

【问题讨论】:

  • 添加错误处理程序以找出原因
  • @charlietfl 你能告诉我怎么做吗?
  • 尝试从apikey 周围的数据中删除引号,例如{apikey:"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"};
  • @Alex.W 这没有任何意义....引用属性键是完全有效的
  • 没关系,你是对的!

标签: javascript jquery json postman


【解决方案1】:

使用修改后的代码:

var data = {"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"};
$.ajax({
    type:'post',
    dataType:'json',
    url:'http://207.154.251.233:8039/app_dev.php/question/get',
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    crossDomain: true,
    data:JSON.stringify(data),
    success:(function (response) {
        alert(response);
    })
});

此外,如果您的脚本从不同的主机运行,您必须使用跨域访问权限。为此,请使用

Access-Control-Allow-Origin: http://foo.example 

如果您的应用程序是用 php 构建的,则使用:

header("Access-Control-Allow-Origin: *"); 
// or your script's host, e.g http://foo.example instead of "*"

【讨论】:

    【解决方案2】:

    您得到的响应是 object 类型的,将显示为 [object] [object]。如果你想在上面做一个alert,你需要JSON.stringify。我建议改用console.log,它更适合调试。

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 2013-09-05
      • 1970-01-01
      • 2016-08-31
      • 2012-01-20
      相关资源
      最近更新 更多