1

我正在向我的 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 作为脚本返回并由浏览器执行。我必须设置请求标头吗?我尝试了“接受”和“转换器”选项,但还没有成功。(我正在使用 GoogleChrome,但也发生在 Safari/FF 中)

干杯,汤姆

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

4

4 回答 4

4

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

于 2011-09-07T18:53:47.890 回答
1

CouchDB 本身正在发送 text/plain 内容类型。如果您将“Accept: application/json”作为标头发送,您可以说服它发送的唯一其他类型是“application/json”。

不过,如果提供 jsonp 响应,CouchDB 似乎应该发送 text/javascript。如果你能提交一张票,我相信它会完成的。

于 2011-09-07T20:03:13.420 回答
0

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

如果没有访问目标服务器,您将无法强制执行它。它应该是Content-Type: text/javascript

于 2011-09-07T18:54:36.427 回答
0

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

于 2013-09-12T07:22:20.740 回答