javascript - JSONP 脚本返回 MIME 类型错误

标签 javascript json ajax

您好,我目前正在编写一个脚本,该脚本必须从返回 json 文件的第三方提要中提取信息。我无法使用 CORS,因为我没有服务器访问权限,因此根据案头研究,我被告知使用 JSONP。我可以在 chrome 网络选项卡中看到回调(响应),但无法读取 chrome 日志中的文件。重点是,当我执行以下代码时,我收到以下错误消息。我无法关闭 mime 类型检查。我试图查看其他问题,但找不到类似的内容。 应该做什么?

“拒绝执行来自‘https://siteurl.com/json=jsonp&callback=jQuery321030035432758818903_1501098778362&_=1501098778363’的脚本,因为其MIME类型(‘application/json’)不可执行,并且启用了严格的MIME类型检查。”

<script src="jquery.js"></script>
<script>
        $.ajax({
            type: 'GET',
            url: 'siteurl.com/json?callback=jsonp',
            dataType: 'jsonp',
            xhrFields: {
                withCredentials: false
            },
            headers: {
                "Accept" : "application/json; charset=utf-8",
                "Content-Type": "application/javascript; charset=utf-8",
                "Access-Control-Allow-Origin" : "*"
            },
            success: function (result) {
                console.log(result);
            },
            error: function (xhr, errorText) {
                console.log('Error ' + xhr.responseText);
            }
        }); 
</script>

看看网络选项卡:

Network tab view

最佳答案

JSONP 不是 JSON! JSONP 是一种 JavaScript 程序,由带有一个参数的函数调用组成。

正确的内容类型是application/javascript


I am not able to use CORS since I do not have server access, so based on desk research I was informed to use JSONP.

如果站点提供 JSONP,则只能使用 JSONP。 (现在他们应该使用 CORS,它在各方面都更好)。仅在查询字符串中添加 callback 不会神奇地强制站点提供 JSONP 并为您破坏同源策略。该网站必须明确地将数据公开给其他网站。

关于javascript - JSONP 脚本返回 MIME 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45348384/

相关文章:

javascript - Ajax/PythonBottle/Jquery/JSON 传递参数时遇到问题

javascript - 使用ajax更新MySQL数据库

javascript - 如何在zendfox框架中使用jquery 1.9.1打开对话框?

javascript - 如果可观察结果等于某个值,如何退出函数

javascript - 当 Event.stopPropagation 不起作用时,如何防止在祖先元素上注册相同的事件?

php - 通过两次 GET 进行星级评定

json - 在 postgresql 中拆分 JSON 列

java - JodaTime LocalDate/LocalTime 不使用自定义 JSON 序列化程序类进行解析

json - 如何通过使用 jq 在键上分组来合并 json 对象

php - 通过AJAX传递MYSQL回显图像ID