跨域 JSON Javascript
Posted
技术标签:
【中文标题】跨域 JSON Javascript【英文标题】:Cross domain JSON Javascript 【发布时间】:2018-03-22 17:26:18 【问题描述】:您好,我正在尝试使用 ONLY javascript 和 html 从 URL 获取 JSON 对象。我正在使用以下代码:
<html>
<head>
<title>Json</title>
<script src="jquery-3.2.1.min.js"></script>
</head>
<body>
<button onclick="myFunction()">Start</button>
<script>
function myFunction()
jQuery.ajax(
url: 'https://iotmmss0018275632trial.hanatrial.ondemand.com/com.sap.iotservices.mms/v1/api/http/app.svc/T_IOT_59824470F0BD12350F22?$format=json',
type: 'GET',
crossDomain: true,
dataType: 'json',
success: function( response )
console.log(response);
,
error : function(error)
console.log(error);
,
);
</script>
</body>
不出所料,我得到了
加载失败 “网址”: 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此,Origin 'http://localhost' 不允许访问。 响应的 HTTP 状态代码为 401。
我无法配置服务器,我不知道它是否支持 CORS(我是新用户)。我尝试了一个 JSONP 请求并得到了响应状态代码 200 和 JSON,但出现了错误:
Uncaught SyntaxError: Unexpected token :
那我该怎么办?
【问题讨论】:
api有文档吗?是不是说支持jsonp? 我可以获取两种不同格式的数据:xml 和 json。我尝试了 jsonp 请求,因为它是唯一没有收到错误的方法: Failed to load "URL": No 'Access-Control-Allow-Origin' header ... jasonp 仅在 API 支持 jsonp 时有效,它与 vanilla json 不同。如果您无法控制服务器(以添加 cors 支持),您可以创建自己的服务器来代理对 api 的调用... 【参考方案1】:您应该尝试通过此答案here。它已经详细介绍了这个主题。
P.S.:本应该对此发表评论,但由于我没有所需的声望点而无法评论。
【讨论】:
以上是关于跨域 JSON Javascript的主要内容,如果未能解决你的问题,请参考以下文章