我正在尝试编写一个简单的jquery脚本来解析一些JSON并对其进行格式化。没什么特别的,但我在Chrome中一直收到以下错误:资源被解释为脚本,但是使用MIME类型text / html进行传输。
我在SO上查了一下它看起来像一个相当常见的问题。我已经遵循了我能找到的每一条建议,但仍然没有运气。这是我的代码:
var url = "http://somesite.com/something/json/json_index.php?q=";
var query = "someQuery";
$.ajax({
url: url + query + "&callback=",
crossDomain:true,
dataType: 'jsonp',
success: function(data){
alert('all done!');
},
error: function(data){
alert('fail.');
}
});
任何人都有任何想法/建议吗?
答案 0 :(得分:3)
JSON-P的工作原理是在HTML文档中创建<script>
标记,远程服务器应返回yourCallback({the: data})
。错误消息听起来像是服务器正在返回一个HTML文档,这可能是404错误或沿着这些行的东西,或者可能只是错误配置的服务器的结果(尽管如果这是一个API,这听起来不太可能)测试了JSON-P)。
Google Chrome的开发者工具也有一个网络标签,因此我建议您查看正在发送的请求以及您收到的回复。这听起来像我们所说的StackOverflow用户无法完全调试而不了解更多关于您正在使用的API的信息,但您应该希望能够使用您拥有的工具进行调试:)
我还注意到您发送的网址以callback=
结尾,但jQuery文档说您应该使用带有问号的callback=?
,以便jQuery可以填写回调名称。也许只需添加?
即可。