jQuery XHR问题

时间:2011-07-20 01:42:23

标签: javascript ajax jquery xmlhttprequest

我正在尝试编写一个简单的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.');
  }
});

任何人都有任何想法/建议吗?

1 个答案:

答案 0 :(得分:3)

JSON-P的工作原理是在HTML文档中创建<script>标记,远程服务器应返回yourCallback({the: data})。错误消息听起来像是服务器正在返回一个HTML文档,这可能是404错误或沿着这些行的东西,或者可能只是错误配置的服务器的结果(尽管如果这是一个API,这听起来不太可能)测试了JSON-P)。

Google Chrome的开发者工具也有一个网络标签,因此我建议您查看正在发送的请求以及您收到的回复。这听起来像我们所说的StackOverflow用户无法完全调试而不了解更多关于您正在使用的API的信息,但您应该希望能够使用您拥有的工具进行调试:)

我还注意到您发送的网址以callback=结尾,但jQuery文档说您应该使用带有问号的callback=?,以便jQuery可以填写回调名称。也许只需添加?即可。