【问题标题】:send JSON POST and get a field发送 JSON POST 并获取一个字段
【发布时间】:2015-12-16 13:39:52
【问题描述】:

我做错了什么,如何做对?

我需要做什么的描述:

发布https://api.chat.center/users 使用以下 JSON {“is_web_user”:true,“email”:“test@email.com”,“full_name”:“用户全名”} 获取 access_token 字段并保存。

我是怎么做的:

<script type='text/javascript'>
var JsonData = {"is_web_user": true, "email": "test@email.com", "full_name" : "user full name"};

$.ajax({
url: 'https://api.chat.center/users',
data: {request:$.toJSON(JsonData)},
type: 'POST',
dataType: 'jsonp',
crossDomain: true,
success: function(data) {
    var return_value=(data.request.access_token);
}                                  
});
</script>

【问题讨论】:

  • 你得到什么错误?
  • 请求是什么?您是否尝试过:数据:JsonData,
  • 我从教程中获取了这段代码,并用描述中的数据替换了它。我认为发送 JSON 需要“请求”?
  • jsonp 不支持POST,仅支持GET。如果 API 需要 POST 并且未启用 CORS,则需要使用代理
  • 我不确定这里是否相关,但我的建议是使用名为“REST 客户端”的 chrome 扩展,并尝试先与服务器通信并查看响应,然后再深入了解 js 实现。

标签: jquery json ajax api post


【解决方案1】:

您的错误是:如果您需要以{requests:["is_web_user": true, "email": "test@email.com", "full_name" : "user full name"]} 这样的格式发送,请使用$.toJSON() 你可以试试这个:

<script type='text/javascript'>
    var JsonData = {request:["is_web_user": true, "email": "test@email.com", "full_name" : "user full name"]};

        $.ajax({
        url: 'https://api.chat.center/users',
        data: JsonData,
        type: 'POST',
        dataType: 'json',
        jsonp: false,
        crossDomain: true,
        success: function(data) {
            var return_value=(data.request.access_token);
        }                                  
        });
        </script>

您可以使用console.log() 进行调试,请参阅此处console.log() 或此处Console.Log(),您可以在浏览器中查看您的开发工具。 希望对您有所帮助。

【讨论】:

  • 谢谢。我尝试了您的代码,但出现错误:{"errors":[{"userMessage":"Email is not provided","internalMessage":"Email is not provided"}]} and Status: 400 Bad Request
  • 我不知道您的请求是如何格式化的。但这似乎是格式化代码的问题。
猜你喜欢
  • 2019-02-23
  • 2018-05-27
  • 2021-12-29
  • 2013-06-13
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多