【问题标题】:Unable to query restful api to retrieve json object无法查询 restful api 来检索 json 对象
【发布时间】:2015-07-19 16:23:40
【问题描述】:

我正在尝试使用 Jquery 函数 getJSON() 查询一个 RESTful API。我正在查询的 URL 肯定会返回一个 json 对象,我通过在 Web 浏览器中请求 URL 来检查这一点。

这是导航到 url 时在网络浏览器中显示的内容:

这是我用来查询 URL 的 Jquery 脚本:

$(document).ready(function(){

    $.getJSON("http://ip-address:7878/v2/server/status?token=B20023A49BA...", function(data){

        $(".statsContainer").innerHTML = data.name;
    }).error(function(jqXHR, textStatus, errorThrown){ /* assign handler */

        alert("error occurred!");
    });

});

目前我只是尝试在页面加载时将“名称”的值添加到 HTML 实体。但我每次都会收到一个错误和警告框。

我在检索这个 json 对象时做错了什么?

编辑:已使用开发人员工具添加了内容类型的屏幕截图。

我也尝试过将纯文本转换为 json 的 ajax 调用,但没有成功:

$(document).ready(function(){

    $.ajax(
        {
            type: "GET",
            url : "http://ip-address:7878/v2/server/status?token=B20023A49BA9B...",
            data : result,

            // if transaction was successful check if logic completed
            success: function(result)
            {
                var obj = jQuery.parseJSON(result);
                alert( obj.name );

            },
            // if transaction failed show an error to the user
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert(textStatus);

            }
        });
});

编辑:这是从“errorThrown”返回的错误。

编辑:为什么将“&callback-jQuery..”附加到 url 的末尾,这是正确的吗?

编辑:这是标题:

【问题讨论】:

  • 在浏览器中加载时得到的响应内容类型是什么。是 Content-Type:application/json 吗?
  • 我怎样才能找到这个?
  • 检查web开发者工具,F12 -> network -> XHR
  • 我已经更新了我的问题
  • 听起来像是跨域 CORS 问题。需要检查正确的 CORS 标头是否可用,或者查看 API 是否提供 jsonp。也了解same origin policy。研究这些术语和每天都会出现的问题不会有任何问题

标签: javascript jquery json api rest


【解决方案1】:

你在这里混合了 jQuery 和 javascript 方法:

$(".statsContainer").innerHTML = data.name;

改成这样:

$(".statsContainer").html(data.name);

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 2014-12-16
    • 1970-01-01
    • 2023-03-26
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多