JSON 与 JSONP:了解差异
JSON 和 JSONP(带填充的 JavaScript 对象表示法)共享 JSON(一种纯文本格式)的基础用于将数据对象表示为字符串。但是,它们在格式、文件类型和实际用途上存在显着差异。
格式差异
JSON 是一种独立的数据格式,可以由任何编程语言解析。它遵循特定的语法,键值对括在大括号中。
相反,JSONP 不是真正的 JSON 格式。相反,它涉及将 JSON 对象包装在 JavaScript 函数调用中。最常见的方法是用任意函数名称后跟括号包围 JSON 数据,例如 func({"name":"value"}).
文件类型差异
JSON 文件的文件扩展名为“.json”,被视为文本文件。 JSON 数据可以存储在 JSON 文件、JavaScript 对象变量或字符串中。
另一方面,JSONP 不是一种文件类型。它是 JavaScript 代码,因此没有单独的文件扩展名。通常,JSONP 数据嵌入在扩展名为“.js”的 JavaScript 文件中。
实际使用差异
JSON 通常用于在服务器和服务器之间传输数据。客户端,因为它既是人类可读的又是机器可解析的。例如,它适合发送数据以响应 AJAX 请求。
JSONP 在跨站点 AJAX 请求中具有特定用途。当客户端向不同域的服务器请求数据时,Web浏览器的同源策略会阻止脚本访问数据。 JSONP 通过将 JSON 数据嵌入 JavaScript 函数调用中来克服此限制。这允许客户端像 JavaScript 对象一样接收数据。
当客户端需要发出单个请求从第三方域获取数据而不求助于服务器端时,JSONP 特别有利代理或 CORS(跨域资源共享)。但是,它具有安全隐患,因为任何人都可以在加载 JSONP 数据之前对其进行修改。
以上是JSON 与 JSONP:主要区别是什么以及何时应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!