警告:资源被解释为脚本,但以MIME类型text/plain传输

js warning: Resource interpreted as Script but transferred with MIME type text/plain

本文关键字:类型 MIME text 传输 plain 但以 资源 解释 脚本 警告      更新时间:2023-09-26

我正在向我的cloudant应用程序发送ajax/jsonp请求:

    var obj = $.ajax({
        url: "http://xyz",
        dataType: 'jsonp',
        success: function(data) {  
            //SOME CODE  
        },
        error: function() {
            //SOME CODE
        }
    });

响应是好的,我可以读出我的数据。但是我得到了以下js警告:

Resource interpreted as Script but transferred with MIME type text/plain.

我需要使这个请求jsonp请求(跨域策略),AFAIK jsonp返回作为一个脚本,并得到执行浏览器。我必须设置请求头吗?我尝试了"接受"answers"转换器"选项,但还没有使它工作。(我使用的是googlecrome,但也发生在Safari/FF)

欢呼,汤姆

PS:我想摆脱警告,因为这个ajax请求每2秒触发一次。所以控制台看起来很糟糕…

服务器在发送JSONP脚本时应该发送一个Content-Type报头集到text/javascript

CouchDB本身正在发送文本/纯文本内容类型。你唯一能说服它发送的其他类型是'application/json',如果你发送'Accept: application/json'作为标头。

如果发送json响应,CouchDB应该发送text/javascript。如果你能开个罚单,我肯定能办成的。

问题在目标服务器上,因为它正在设置Content-Type: Text/plain

如果不能访问目标服务器,就不能强制执行它。应该是Content-Type: text/javascript

您是否在头中发送任何编码信息?我在CouchDB响应中遇到了一个问题,并发现将charset=utf-8添加到AcceptContent-Type标题会导致CouchDB返回text/plain内容,而不是我期望的application/json。如果情况足够相似,也许您可以通过更改标题来解决这个问题。