0

我需要从 cloudify rest url (remotehost) 获取 json 数据http://hostname:8100/service/applications/

此 URL 返回以下 JSON 响应:

{
    "response": {
        "petclinic": ""
    },
    "status": "success"
}

我试图用下面的代码得到响应:

$.getJSON("http://hostname:8100/service/applications?jsoncallback=?", function (result) {
    $.each(result, function (i, field) {
        $("div").append(field + " ");
    });
});

我在 firebug 中检查了来自网络面板的请求,显示 200 OK 状态,但我无法获取 JSON 数据。控制台中出现以下错误:

控制台错误

4

1 回答 1

2

同源

假设调用是从同一个域进行的(例如,您正在部署本地云,并且您的调用是在本地进行的,并向 发送请求localhost:8100),您应该能够成功执行 REST 调用,前提是您?jsoncallback=?从请求网址。

URL 的此后缀用于请求响应的包装函数,并与 JSONP(JavaScript-Object-Notation Padding)类型的请求一起使用。为了使用 JSONP,服务器必须支持它 - 目前 Cloudify REST API 不支持 - 因此此类请求将失败,来自任何来源。

跨原点

如果您尝试从与 REST 服务器不同的域运行它,无论如何它都不会工作。REST API 也不允许跨域资源共享。它是供服务器使用的,因此请创建一个服务来调用 REST API 并为您的客户端提供服务。您可以将您的 jQuery XHR 调用放在该客户端上,调用您自己的服务。

进一步阅读

于 2013-07-24T09:11:16.650 回答