2012-03-27 58 views
0

我已阅读,阅读和阅读..我试图拉一个饲料我跟着上次回答我可以谷歌。我没有得到这里的问题,因为找到并解析darn json会导致firebug无法正常工作。jsonp,只是没有工作..总是错误

所以尽量一个

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url+'?callback=?', function(data){ 
    alert('true'); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
     }); 
}); 

失败但我看到它在WTF?

所以

var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.ajax({ 
    url: url, 
    cache: false, 
    dataType: 'jsonp', 
    jsonp : "callback", 
    success: function(data){ 
    alert('data'); 
    //data=jQuery.parseJSON(data); 
    $.jtrack({ 
     load_analytics:{account:GAcode}, 
     trackevents:data // this can be hard codded here or set do be feed in like so 
    }); 
    }, 
    error: function(e, xhr){ 
    alert('error'); 
    alert(e); 
    } 
}); 

次的失败..所以..嗯认为错误会告诉我呢..什么都没有..所以..让我们真实并测试输出它是自我的原因确定地狱,它找到了网址,我正在调用jsop和和.. ..以及让我们验证输出的原因肯定是这个问题。

enter image description here

所以..好,我不知道。我在这里从曼谷打每一次缝补线程。一个人知道交易是什么?

+5

那么你对待它是JSONP ,但截图和网址显示为JSON,没有设置回调。 – epascarello 2012-03-27 19:55:46

+0

你的链接只是json,你有API文档吗?你将不得不设置一个回调,即:http://web.onassar.com/blog/2009/07/25/jsonp-vs-json-amazing-for-apis/ – JKirchartz 2012-03-27 20:00:01

+0

,所以我包裹了网址的输出在回调函数()中,没有改变$ .getJSON(url +'?callback =?',function(data){}); – 2012-03-27 20:06:56

回答

1

结帐此链接: JSON Example using Callback

我认为JSON返回需要把回调返回的JSON。在上面的例子中,它被放置在像前:

CALLBACKVALUE([{"id":"4","name":"FICTION","parentid":"3","getfullname":"BOOKS > FICTION"},{"id":"5","name":"NON-FICTION","parentid":"3","getfullname":"BOOKS > NON-FICTION"}) 
+0

好吧..做到了这一点,似乎把它拉回来,但$ .getJSON(url +'?callback =?',function(data){alert('true');});仍然不警觉? – 2012-03-27 20:14:58

+0

好吧..这是正确的..在测试错字..谢谢.. -J – 2012-03-27 20:18:29

0

我认为问题是,你没有返回JSONP内容 - 只是JSON。您需要预先将callback参数添加到您当前正在服务的JSON的开头,并将其包含在括号中。例如您正在返回:

[{ 
    "element":"#null", 
    "options":{} 
}, 
    ... 
] 

,你需要将返回:

value_of_callback_param([{ 
    "element":"#null", 
    "options":{} 
    }, 
    ... 
]); 

尾随;是可选的。请参阅this link,其中描述了应该如何工作。

另外,我认为application/javascript应该用于内容类型而不是application/json,因为您将返回有效的JavaScript而不仅仅是一个JSON对象/数组。此外,jQuery docs for the $.ajax function指出error回调不应针对JSONP请求调用。

+0

是danfolkes指出我错过了作为包装的回调价值..谢谢你回来..干杯 - – 2012-03-27 20:42:40

0

只是要pick.asp得到callback URL参数(从现在起称为<some string>),它获取的jQuery生成,这样pick.asp?callback=<some string>向服务器发送的值。然后使用该值来构建你这样的回应:

<some string>(<your json>); 
0

此提醒“#NULL”

var url = 'http://images.wsu.edu/javascripts/tracking/configs/pick.asp'; 
$.getJSON(url + '?callback=?', function(data) { 
    alert(data[0].element); 
}); 

这里就是回来:

callback([ 
    { 
     "element":"#null", 
     "options":{} 
    },{ 
     "element":"a#hover", 
     "options":{ 
      "category":"hover", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
     } 
    },{ 
     "element":"a[href$='.jpg'],a[href$='.gif'],a[href$='.png'],a[href$='.ppt'],a[href$='.pdf'],a[href$='.doc'],a[href$='.docx']", 
     "options":{ 
      "category":"download", 
      "label":"function(ele){ return (($(ele).attr('title')!='' && typeof($(ele).attr('title')) !=='undefined') ? $(ele).attr('title') : $(ele).attr('href')) }" 
      } 
    },{ 
     "element":"a:not([href*='mailto('])", 
     "options":{ 
      "category":"email" 
      } 
    },{ 
     "element":"a:not([href*='wsu.edu'])", 
     "options":{ 
      "category":"outbound" 
      } 
    },{ 
     "element":"a[href*='wsu.edu']", 
     "options":{ 
       "category":"internal", 
       "noninteraction":"true" 
      } 
    } 
]) 
+0

是danfolkes指出我错过了作为包装的回调价值..你刚刚错过了..谢谢你回来..干杯 - – 2012-03-27 20:43:12

相关问题