如何从 JavaScript 调用 REST API

2024-02-04

我有一个提供 json 数据的网址...

我想从 javascript 访问该 URL,但收到此错误:

纯文本文档的字符编码未声明。如果文档包含 US-ASCII 范围之外的字符,则在某些浏览器配置中,该文档将呈现为乱码。文件的字符编码需要在传输协议中声明或者文件需要使用字节顺序标记作为编码签名

Code :

function a(){
$.getJSON(url,function(data) { alert(data);});
}

完整代码:

<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></meta>
<script language="JavaScript" type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script>

function a(){
$.getJSON(url,function(data) { alert(data);});
}
</script>
</head>
<body>
<input type="text"/>
<input type="submit" value="search" onclick="a()"/>
</body>
</html>

你的代码看起来是正确的。

你在做一个fully qualified URL call?

如果您要进行完全限定的 URL 调用,请确保以下事项。

  1. 您正在调用同一域(同一服务器)。你不能做一个 对另一个域的简单 JSON 调用。
  2. 如果你想使用跨域调用,你必须使用 JSONp

Update:这是行不通的,因为它是跨域调用。

解决这个问题

JavaScript

创建一个函数

function getMyData(data) {
    alert(data);
    //Do the magic with your data
}

服务器端

在服务器端将数据包装在函数语法中

getMyData("Enter your data here");

JavaScript

然后创建一个脚本标签并添加指向您的跨域页面的链接

 <script type="text/javascript"
         src="cross ref url">
 </script>

以供参考:维基百科 http://en.wikipedia.org/wiki/JSONP

编辑:另一个选项是在您的域上创建代理。即在您的域中创建一个页面,该页面在内部调用跨域页面并将相同的数据返回到您的 Ajax 调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 JavaScript 调用 REST API 的相关文章