0

<script>通过向DOM 添加标签来调用 REST API 。我需要将类型设置application/json为避免 JS 错误。API 返回一个 JSON 对象,并且type=text/javascript定期使用会产生语法错误,因为浏览器需要 JavaScript,而是读取 JSON。根据浏览器的不同,它会在第一个冒号上给出“Unexpected token :”错误,或“SyntaxError: missing ; before statement {"property_name":"

此块不执行 API 调用:(请注意此调用需要身份验证密钥,因此此代码给出了 500 错误。)

<script>
    var s = document.createElement('script');
    s.type = 'application/json';
    s.src = '//my.api.com/api/v2/asset.json';
    document.getElementsByTagName('head')[0].appendChild(s);
</script>

使用默认的“text/javascript”类型会进行 API 调用,但会出现语法错误:

<script>
    var s = document.createElement('script');
    s.src = '//my.api.com/api/v2/asset.json';
    document.getElementsByTagName('head')[0].appendChild(s);
</script>

我可以将 MIME 类型设置为会触发 API 调用 (HTTP GET) 的其他类型吗?还是我们需要在 API 上设置一些东西才能使这个调用起作用?

4

1 回答 1

0

浏览器不知道如何执行以 JSON 表示的脚本(因为它不是脚本语言,它是一种数据格式),因此您不能使用<script>元素来加载 JSON 文件。

如果要加载 JSON 数据以用于 JavaScript,请使用 XMLHttpRequest。

于 2013-10-10T22:02:31.723 回答