2012-03-30 64 views
2

我是在IE9的调试模式。我在第一行放置了一个断点(如下),并打了一个断点。但是,回调中第一行的断点从来不会被打中。

在看过Network选项卡后,我看不到对URL的请求(设置为"http://localhost/PopNote/")。

$.getJSON(
      URL + "messages/getUnreadMessages.json?" + Math.random(), // add random to prevent IE cache 
      { 
       productKey  : this.productKey, 
       listIds   : this.listIds, 
       personEmail  : this.personEmail 
      }, 
      function(data) {  
       if(data.messages.length == 0) return; 

为什么请求不被发送(只在IE中)?

谢谢!

+0

您是否尝试过附加失败处理程序以查看您是否获得任何回应? – 2012-03-30 16:20:59

+0

您是否正确地结束括号和括号?所有这些变量是否始终启动?我曾经遇到类似于这种情况的情况,我认为这是一个兼容性问题,并且事实证明这是一个语法代码错误,无论如何firefox处理请求并且IE没有。 – DMulligan 2012-03-30 16:21:46

+0

@SteveGreatrex:我如何附加故障处理程序?我在jQuery文档中没有看到类似的东西。 – Garrett 2012-03-30 19:07:45

回答

4

HOLY GUACAMOLE!这是一些错误!以下是我固定它:

  1. 新增jQuery.support.cors = true;给我的脚本
  2. 新增crossDomain: truedataType: 'jsonp'的开头我$.ajax选项
  3. 转换我的JSON代码JSONP格式,如:

    $_GET['callback'] . '(' . json_encode($data) . ');'

And VOILA!我今天调试过的最难的错误。

+0

谢谢!这真的很难调试,甚至很难找到这个问题:P无论如何,我只是添加了crossDomain:true,它的工作 – 2012-10-19 11:10:13

+0

没有问题:)有人不得不这样做。 – Garrett 2012-10-20 04:54:55

相关问题