2017-10-11 141 views
0

嗨我正在尝试使用仅限 JavaScript和HTML从URL中获取JSON对象。我使用下面的代码:跨域JSON Javascript

<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> 

正如预期的那样,我越来越

Failed to load "URL": No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost ' is therefore not allowed access. The response had HTTP status code 401.

我不能配置服务器,我不知道它是否支持CORS(林新)。我尝试了JSONP请求,并得到了为响应状态代码200和JSON,但与错误:

Uncaught SyntaxError: Unexpected token :

所以,我该怎么办?

+0

api是否有文档?它是否说它支持jsonp? –

+0

我可以得到两种不同格式的数据:xml和json。我试过jsonp请求,因为它没有得到错误的唯一方法:未能加载“URL”:没有'访问控制允许源'头... –

+0

只有API支持jsonp,它不一样作为香草json。如果您无法控制服务器(以添加cors支持),则可以创建自己的服务器以代理针对您的api调用。 –

回答

0

你应该尝试通过这个答案here。它详细介绍了这个主题。

P.S .:应该评论这个,但不能,因为我没有所需的声望点。